AnsweredAssumed Answered

[Résolu]Fonctionnement sporadique CIFS....

Question asked by globulle on Sep 19, 2008
Latest reply on Sep 24, 2008 by michaelh
Bonjour,

Voila un petit moment que je travaille avec la technologie alfresco sur le système d'information de mon entreprise, et jusque la avec un alfresco sous linux, aucun problème d'utilisation n'était à déplorer.

Cependant recemment j'ai du procéder a la migration du depot documentaire vers une installation de Alfresco en 2.1 (la mème que l'ancienne) mais sur un Windows Server 2008.

La migration c'est plutot bien passée (aucune perte de doc ^^) mais le partage CIFS a un fonctionnement totalement erratique.

J'ai deux type de clients des Vista Enterprise et des Windows XP.

Je n'ai pas oublié de mettre mon fichier Win32NetBIOS.dll dans ma racine Windows, et j'ai ensuite customiser un poil mon fichier file-server-custom.xml

Concernant mon fichier File-Server-custom.xml :

<config evaluator="string-compare" condition="CIFS Server">
     <serverEnable enabled="true"/>
      <host name="DepotDoc"/>
      <comment>Alfresco CIFS Server</comment>

      <!– Set to the broadcast mask for the subnet –>
      <broadcast>192.168.1.255</broadcast>
      <bindto>192.168.1.10</bindto>

      <!– Use Java socket based NetBIOS over TCP/IP and native SMB on linux –>
      <!–
      <tcpipSMB platforms="linux,solaris,macosx"/>
      <netBIOSSMB platforms="solaris,macosx"/>
         –>
      <!– Can be mapped to non-privileged ports, then use firewall rules to forward
          requests from the standard ports –>
     
      <tcpipSMB port="1445" platforms="linux,solaris,macosx"/>
      <netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>

     
      <hostAnnounce interval="5"/>

      <!– Use Win32 NetBIOS interface on Windows –>
      <Win32NetBIOS/>
      <Win32Announce interval="5"/>

      <sessionDebug flags="Negotiate,Socket"/>
   </config>

et mon file-server.xml

<alfresco-config area="file-servers">

   <config evaluator="string-compare" condition="CIFS Server">
     <serverEnable enabled="true"/>
      <host name="PROD"/>
      <comment>Alfresco CIFS Server</comment>

      <!– Set to the broadcast mask for the subnet –>
      <broadcast>192.168.1.255</broadcast>

      <!– Use Java socket based NetBIOS over TCP/IP and native SMB on linux –>
      <tcpipSMB platforms="linux,solaris,macosx"/>
      <netBIOSSMB platforms="solaris,macosx"/>

      <!– Can be mapped to non-privileged ports, then use firewall rules to forward
          requests from the standard ports –>
     <!–      
      <tcpipSMB port="1445" platforms="linux,solaris,macosx"/>
      <netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>
     –>
      
      <hostAnnounce interval="5"/>

      <!– Use Win32 NetBIOS interface on Windows –>
      <Win32NetBIOS/>
      <Win32Announce interval="5"/>

<!–
      <WINS>
         <primary>1.2.3.4</primary>
         <secondary>5.6.7.8</secondary>
      </WINS>
–>
      <sessionDebug flags="Negotiate,Socket"/>
   </config>

   <config evaluator="string-compare" condition="FTP Server">
     <serverEnable enabled="true"/>
<!–      <debug flags="File,Search,Error,Directory,Info,DataPort"/> –>
   </config>
  
   <config evaluator="string-compare" condition="NFS Server">
     <serverEnable enabled="false"/>
   </config>
   
   <config evaluator="string-compare" condition="Filesystems">
     <filesystems>
       
       <!– Alfresco repository access shared filesystem –>
         <filesystem name="PROD">
            <store>workspace://SpacesStore</store>
            <rootPath>/app:company_home</rootPath>

         <!– Add a URL file to each folder that links back to the web client –>
         <urlFile>
               <filename>__AlfrescoClient.url</filename>
               <webpath>http://${localname}:8080/alfresco/</webpath>
            </urlFile>

         <!– Mark locked files as offline –>
          <offlineFiles/>

         <!– Desktop actions –>
         <!– Uses a client-side application to trigger a server-side action                         –>
         <!–   Echo - displays a message echoed from the server                                     –>
         <!–   URL  - launches a URL via the Windows shell                                          –>
         <!–   CmdLine - launches the Notepad application                                           –>
         <!–   CheckInOut - checks files in/out, drag and drop files onto the application           –>
         <!–   JavaScript - run a server-side script                                                –>
         <!–   JavaScriptURL - server-side script that generates a URL to the folder using a ticket –>
         <!–                   to avoid having to logon                                             –>

<!–
         <desktopActions>
            <global>
                    <path>alfresco/desktop/Alfresco.exe</path>
               <webpath>http://${localname}:8080/alfresco/</webpath>
            </global>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.EchoDesktopAction</class>
               <name>Echo</name>
                 <filename>__AlfrescoEcho.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.URLDesktopAction</class>
               <name>URL</name>
                 <filename>__AlfrescoURL.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.CmdLineDesktopAction</class>
               <name>CmdLine</name>
                 <filename>__AlfrescoCmd.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.CheckInOutDesktopAction</class>
               <name>CheckInOut</name>
                 <filename>__AlfrescoCheckInOut.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.JavaScriptDesktopAction</class>
               <name>JavaScript</name>
               <filename>__AlfrescoScript.exe</filename>
               <script>alfresco/desktop/dumpRequest.js</script>
               <attributes>anyFiles, multiplePaths , allowNoParams</attributes>
               <preprocess>confirm, copyToTarget</preprocess>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.JavaScriptDesktopAction</class>
               <name>JavaScriptURL</name>
               <filename>__AlfrescoDetails.exe</filename>
               <script>alfresco/desktop/showDetails.js</script>
               <attributes>anyFiles</attributes>
               <preprocess>copyToTarget</preprocess>
            </action>

         </desktopActions>
–>         
                   
<!–
            <accessControl default="Write">
               <user name="admin" access="Write"/>
               <address subnet="90.1.0.0" mask="255.255.0.0" access="Write"/>
            </accessControl>
–>
         </filesystem>
       
       <!– AVM virtualization view of all stores/versions for WCM –>
         <avmfilesystem name="AVM">
            <virtualView/>
         </avmfilesystem>
       
      </filesystems>
   </config>

   <config evaluator="string-compare" condition="Filesystem Security">
      <authenticator type="enterprise">
      </authenticator>

<!–
      <globalAccessControl default="None">
         <user name="admin" access="Write"/>
         <address ip="90.1.0.90" access="Write"/>
      </globalAccessControl>

      <users>
         <localuser name="user">
            <password>user</password>
            <comment>Normal user account</comment>
         </localuser>
   
         <localuser name="administrator">
            <password>admin</password>
            <administrator/>
            <comment>Administrator account</comment>
         </localuser>
      </users>
–>
   </config>


</alfresco-config>

J'ai changé le nom du partage CIFS racine de Alfresco pour des besoin d'intégration. J'ai du pratiquer deux ou trois petit ajustement eu égard a toute les solution que j'ai pu tester. Donc si le fichier n'est pas "hyper propre" je pense que c'est normal :)

Et voici un exemple de log qui me cause des soucis :

07:09:46,593 ERROR [org.alfresco.smb.protocol] Closing session due to exception
net.sf.acegisecurity.AuthenticationCredentialsNotFoundException: A valid SecureContext was not provided in the RequestContext
   at net.sf.acegisecurity.intercept.AbstractSecurityInterceptor.credentialsNotFound(AbstractSecurityInterceptor.java:477)
   at net.sf.acegisecurity.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:355)
   at net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:77)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.alfresco.repo.audit.AuditComponentImpl.auditImpl(AuditComponentImpl.java:256)
   at org.alfresco.repo.audit.AuditComponentImpl.audit(AuditComponentImpl.java:191)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:69)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
   at $Proxy40.searchSimple(Unknown Source)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.getDirectDescendents(CifsHelper.java:430)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.addDescendents(CifsHelper.java:405)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.getNodeRefs(CifsHelper.java:498)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.getNodeRef(CifsHelper.java:521)
   at org.alfresco.filesys.smb.server.repo.ContentDiskDriver.getNodeForPath(ContentDiskDriver.java:2309)
   at org.alfresco.filesys.smb.server.repo.ContentDiskDriver.getFileInformation(ContentDiskDriver.java:593)
   at org.alfresco.filesys.smb.server.CoreProtocolHandler.procGetFileAttributes(CoreProtocolHandler.java:1338)
   at org.alfresco.filesys.smb.server.CoreProtocolHandler.runProtocol(CoreProtocolHandler.java:3721)
   at org.alfresco.filesys.smb.server.NTProtocolHandler.runProtocol(NTProtocolHandler.java:371)
   at org.alfresco.filesys.smb.server.SMBSrvSession.run(SMBSrvSession.java:1352)
   at java.lang.Thread.run(Thread.java:595)
07:09:46,609 ERROR [org.alfresco.smb.protocol] Closing session due to exception

J'ai beaucoup de mal à identifier les défaut de conf avec le log alfresco. Pendant mes test avant la mise en production j'ai mis en place un cluster alfresco (deux serveur un SGBD Mysql ect…) le debug de la configuration a été un veritable enfer.
Bon pour le coup j'ai vu SMB ecrit donc eu égard aux problèmes d'accès au partage CIFS j'ai percuté directement, mais bon sa reste quand même assez approximatif comme diagnostique.

Ce log se répète en boucle je pense que cela se produit au moment d'une tentative de connexion au CIFS. Par contre aucune idée pour ce qui est de régler le problème. J'ai pas mal parcouru les docs disponibles sur le wiki donc je commence a me faire du soucis, vais je devoir complètement désactiver le CIFS ?

Concrètement le problème se traduit par un message au moment de l'accès au partage (en montant un lecteur réseau) "Le nom de réseau n'est plus disponible".
Ce qui arrive également pendant un transfert de fichier vers le CIFS Alfresco, lorsque j'arrive a obtenir un lecteur réseau ….

Outcomes