Evitando problemas de “arquivo bloqueado para leitura” com compartilhamentos de arquivos do Windows

2

Nosso ambiente de criação amplia a última versão para um compartilhamento de arquivos do Windows em um local predefinido. Temos problemas de bloqueio de arquivos quando usuários remotos abrem e mantêm pastas e arquivos nesse compartilhamento de arquivos somente leitura, e isso faz com que nossas compilações sejam interrompidas. Existe alguma tecnologia que possa resolver isso para nós?

Eu pensei sobre

  • DFS-R
  • BranchCache
  • Ativando apenas o WebDav e desativando o SMB (e você?)

mas nenhuma dessas soluções candidatas parece ser uma ótima opção até agora.

Para esclarecer, assuma que o caminho para a "última compilação" é \ server \ share \ path \ Latest e apenas o servidor de compilação tem acesso de gravação. Alguém abriu um prompt de comando ou um arquivo msi em algum lugar na pasta "Latest". Agora o servidor de compilação está pronto e precisa limpar todo o conteúdo da pasta antes de copiar em todas as partes recém-construídas. Não pode fazer.

Se um compartilhamento SMB tivesse suporte a links simbólicos ou alguma idéia de transações como NTFS ou ser capaz de renomear diretórios "abertos" como HFS - mas não.

E colocar todos os binários nas pastas do documento do SharePoint como sugerido em outro lugar parece uma idéia ruim também devido ao volume de dados. Eu prefiro ir para um compartilhamento somente WebDAV que é montado como um sistema de arquivos, mas se comporta como um site.

    
por Pelle 08.05.2012 / 11:57

2 respostas

2

Você quer dizer que eles estão realmente editando esses arquivos, ou esse é um tipo de situação em que ninguém está realmente usando os arquivos, mas há um bloqueio de arquivo neles?

Se eles estiverem realmente usando esses arquivos (ou tiverem o arquivo aberto em um editor enquanto eles estiverem usando um donut), então você provavelmente não desejará que esses arquivos sejam abertos de outra forma que não seja com um aplicativo que abre-os com cópias somente para leitura ou você terá corrupção potencial. Você disse que o compartilhamento de arquivos é somente leitura embora. Então, o que eles estão fazendo que não permitiria várias aberturas no arquivo como somente leitura? Você não menciona qual é o seu processo de criação, então talvez isso seja específico para esse fluxo de trabalho?

Sua melhor solução pode ser tentar isolar seu ambiente de desenvolvimento de seus ambientes de desenvolvimento. Tenha um processo de desenvolvimento que faça o check out de um repositório de todas as suas fontes e as construa em um servidor dedicado e compartilhamento dedicado, longe de qualquer coisa tocada por seus desenvolvedores. Dessa forma, você não precisa se preocupar com os desenvolvedores alterando algo ou interrompendo o processo de criação, e o processo de compilação não precisará se preocupar com nada que esteja sendo alterado enquanto estiver funcionando.

    
por 08.05.2012 / 12:58
-1

Se você usou um servidor de arquivos Linux, estas 3 opções em smb.conf podem ser úteis.

strict locking = no
blocking locks = no

# from man page: Be careful about disabling locking either globally or in a specific service, as lack of locking may result in data corruption. You should never need to set this parameter.
locking = no

Mas para usá-los, você desejaria um compartilhamento separado para os clientes graváveis sem o acima, o que, presumo, significa que o aviso não se aplica.

    
por 08.05.2012 / 14:06