cancel
Showing results for 
Search instead for 
Did you mean: 

CIFS problems with large documents repository

icarrara
Champ in-the-making
Champ in-the-making
I installed Alfresco 3.4.d using Tomcat 6 and MySql 5.1 on a WIndows Server 2008 64 bit with 32 Gbyte of memory and fast SAS hard drives.

The JVM that host Tomcat starts with the below configuration:
-Xss1M
-Xms16G
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:NewSize=1G
-XX:MaxPermSize=512M
-XX:CMSInitiatingOccupancyFraction=80
-Duser.language=it
-Duser.region=IT

I mapped the O: disk unit to the \\localhost\Alfresco CIFS file server, and I can see my large base of folders and files, around 1.500 folders with many PDF files inside.

Starting long batch operations on this O: disk mapped to the Alfresco CIFS server, for example to backup to an external backup unit or to copy some files from folder to folder using copy commands or Windows backup tool or reading the Alfresco repository using a FTP client), after some time the above mapping (O: disk unit to the \\localhost\Alfresco CIFS filse server) is lost and  can't access to the Alfresco repository via CIFS .

I need to close the Windows session (logout) - Then, when I reopen the Windows session, I can access again to the Alfresco repository via CIFS.
But, of course, if I start again my backup or copy or FTP transfer, I lost again the access to the O: disk mapped to the Alfresco CIFS server.

When I lost the access to the  Alfresco repository via CIFS, in the Tomcat's log I see the below messages:

10:13:01,235 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
log4j:ERROR Failed to rename [alfresco.log] to [alfresco.log.2011-09-24].
10:13:55,132 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
10:15:40,494 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
10:15:44,035 User:spoolmaster WARN  [cache.node.propertiesTransactionalCache] Transactional update cache 'org.alfresco.cache.node.propertiesTransactionalCache' is full (5000).
11:16:47,360 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
11:17:12,538 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
11:24:59,786 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
11:26:19,455 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
11:28:55,605 User:spoolmaster WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
11:28:59,411 User:spoolmaster WARN  [cache.node.propertiesTransactionalCache] Transactional update cache 'org.alfresco.cache.node.propertiesTransactionalCache' is full (5000).
12:42:26,948 User:spoolmaster ERROR [org.alfresco.fileserver] java.lang.RuntimeException: A channel has already been opened
java.lang.RuntimeException: A channel has already been opened
   at org.alfresco.repo.content.AbstractContentReader.getReadableChannel(AbstractContentReader.java:219)
   at org.alfresco.repo.content.AbstractContentReader.getFileChannel(AbstractContentReader.java:247)
   at org.alfresco.filesys.repo.ContentNetworkFile.openContent(ContentNetworkFile.java:373)
   at org.alfresco.filesys.repo.ContentNetworkFile.readFile(ContentNetworkFile.java:632)
   at org.alfresco.filesys.repo.ContentDiskDriver.readFile(ContentDiskDriver.java:3473)
   at org.alfresco.jlan.smb.server.NTProtocolHandler.procReadAndX(NTProtocolHandler.java:2649)
   at org.alfresco.jlan.smb.server.NTProtocolHandler.runProtocol(NTProtocolHandler.java:263)
   at org.alfresco.jlan.smb.server.SMBSrvSession.runHandler(SMBSrvSession.java:1366)
   at org.alfresco.jlan.smb.server.SMBSrvSession.processPacket(SMBSrvSession.java:1458)
   at org.alfresco.jlan.smb.server.CIFSThreadRequest.runRequest(CIFSThreadRequest.java:59)
   at org.alfresco.jlan.server.thread.ThreadRequestPool$ThreadWorker.run(ThreadRequestPool.java:153)
   at java.lang.Thread.run(Thread.java:662)
12:42:26,948 User:spoolmaster ERROR [org.alfresco.fileserver] java.lang.RuntimeException: A channel has already been opened
java.lang.RuntimeException: A channel has already been opened
   at org.alfresco.repo.content.AbstractContentReader.getReadableChannel(AbstractContentReader.java:219)
   at org.alfresco.repo.content.AbstractContentReader.getFileChannel(AbstractContentReader.java:247)
   at org.alfresco.filesys.repo.ContentNetworkFile.openContent(ContentNetworkFile.java:373)
   at org.alfresco.filesys.repo.ContentNetworkFile.readFile(ContentNetworkFile.java:632)
   at org.alfresco.filesys.repo.ContentDiskDriver.readFile(ContentDiskDriver.java:3473)
   at org.alfresco.jlan.smb.server.NTProtocolHandler.procReadAndX(NTProtocolHandler.java:2649)
   at org.alfresco.jlan.smb.server.NTProtocolHandler.runProtocol(NTProtocolHandler.java:263)
   at org.alfresco.jlan.smb.server.SMBSrvSession.runHandler(SMBSrvSession.java:1366)
   at org.alfresco.jlan.smb.server.SMBSrvSession.processPacket(SMBSrvSession.java:1458)
   at org.alfresco.jlan.smb.server.CIFSThreadRequest.runRequest(CIFSThreadRequest.java:59)
   at org.alfresco.jlan.server.thread.ThreadRequestPool$ThreadWorker.run(ThreadRequestPool.java:153)
   at java.lang.Thread.run(Thread.java:662)

Please, any help?
Thank you in advance!

Ivano C.
4 REPLIES 4

loftux
Star Contributor
Star Contributor
Do not backup Alfresco using CIFS, beacuse that is NOT a backup
http://wiki.alfresco.com/wiki/Backup_and_Restore

Also, if you want to copy files stored in Alfresco to another folder in Alfresco, consider using the Share web client, or the api. The reason is that a copy internally is just a db transaction (creating new nodes with pointers to the stored file), no files get moved around. So a copy or move of large amount of data is very quick this way.
With CIFS, you actually move the file content around.

icarrara
Champ in-the-making
Champ in-the-making
Hi! Thank you for your reply!

The fact is that I need to copy the CIFS content because I need to be able to restore only some folders or some files, not the entire repository.

About the copy operations inside CIFS folders, there are large amounti of users that use Alfresco only by CIFS folders interface, not by Web/Share interface.
Moreover, there are external systems and legacy procedures that feeds Alfresco repository only by CIFS folders…  we can't forget the external environments.

For example, we have some IBM AS400 servers that store in Alfresco large amount of PDF files and the only method is to see CIFS folders….

So I need to have a stable CIFS interface for our CMS.

In your experience, how stable is the CIFS server provided by Alfresco ?

Thank you for more comments!

Ivano C.

loftux
Star Contributor
Star Contributor
OK, at least you are informed on how to do a backup of Alfresco  :wink:

So, in your case, what could cause the issues? Your backup/copy solution, is it changing anything in the files, like trying to set an archive bit and thus the Alfresco latest update time stamp must be updated for every single file (not sure if that actually happens, just trying the idea). Can you check if the latest change time stamp gets updated? If so, is there anything you can change in your backup software settings?

Cifs isn't the best protocol (not because of also Alfresco, in the protocol itself), very chatty and not suitable to travel across routers and long distances. It also requires that all files be listed in a folder before you can start doing anything with any of the files. And for that, Alfresco needs to list all of them and evaluate permissions and find out its metadata. So in your case, do you have large amount of files in each folder? There is no exact number for a recommendation of number of files per folder, but I would say around 300. Then start creating subfolders to store your files in. That could improve things.

Also remember that Alfresco stores information in a database, something a normal cifs doesn't do. So there is a small overhead when storing files, the database has to do its work. So have you tuned your database settings anything? Like transactional cache size?
There is also indexing, the document needs to be indexed, and that adds compared to an ordinary file server save.

Do you have any rules on you folders, for example one that applies versioning? That also adds to the amount of work a cifs save needs to do.

My experience with cifs: Haven't tried your large copy scenario so really can't say if it is tunable with the above. For everyday work with Office documents, my experience with Community 3.4.x isn't the best because of Office rename shuffle when saving. In short, when you save an office document, it renames/saves with temp files, and alfresco needs to keep track of that. That often fail, and documents can get corrupted. Now with 4.0.a coming soon, there is lots of code changes to deal with this and other cifs stuff, so I'm optimistic that there are lots of improvements for CIFS there. Then you can use solr, so that indexing can be out of transaction and on separate server, and that may improve performance as well. So for 3.4.x, I try not to use cifs for anything except as a way to get multicopiers and such to have an interface to save to Alfresco, for 4.0.a, I'm a lot more optimistic.

icarrara
Champ in-the-making
Champ in-the-making
Hi!

You was very clear and your reply very complete … thank you!!

In definitive you are telling me that the actual 3.4.d is not good to substitude a normal Windows shared disk deployed on a server?

Alfresco is famous based on the fact that this scenario is a normal situation… right now I'm a bit surprised….
What is your advise in a scenario where users  used to share Office's documents over a shared Windows disk, when you need to introduce Alfresco ?

Thank you veru much for your experience!

Ivano C.
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.