4

I have an Azure file storage mapped to one of my drive on the deployer VM. When I try to publish data to this file storage, I am getting the error below and transaction is failing even though I have made sure the path given in cd_storage_conf for file storage is correct. If I change the path to some local folder, it works perfectly.

Caused by: com.tridion.broker.StorageException: Exception occured while trying to commit transaction tcm:0-699-66560
    at com.tridion.storage.filesystem.FSDAOFactory.commitTransaction(FSDAOFactory.java:134) ~[cd_datalayer.jar:na]
    at com.tridion.storage.StorageManagerFactory.commitTransaction(StorageManagerFactory.java:354) ~[cd_datalayer.jar:na]
    ... 12 common frames omitted
Caused by: java.io.IOException: The system cannot find the path specified
    at java.io.WinNTFileSystem.createFileExclusively(Native Method) ~[na:1.7.0_45]
    at java.io.File.createNewFile(Unknown Source) ~[na:1.7.0_45]
    at com.tridion.util.FileUtils.copy(FileUtils.java:99) ~[cd_core.jar:na]
    at com.tridion.util.FileUtils.copy(FileUtils.java:129) ~[cd_core.jar:na]
    at com.tridion.storage.filesystem.FSEntityManager.commit(FSEntityManager.java:90) ~[cd_datalayer.jar:na]
    at com.tridion.storage.filesystem.FSDAOFactory.commitTransaction(FSDAOFactory.java:132) ~[cd_datalayer.jar:na]
    ... 13 common frames omitted

Is there any limitations of the Deployer Java API which cannot write to mapped file storage?

1
  • 3
    "the system cannot find the path specified" - looks like the account under which your Deployer runs cannot "see" your file system mapping.
    – Nuno Linhares
    Commented Jan 11, 2016 at 15:16

1 Answer 1

6

As Nuno indicates in his comment, the error sounds like your drive mapping is not available for the user which the Deployer is running under. Since your indicate you use an HTTP Deployer, its web application is running under a service account identity (check the app pool identity) which most likely doesn't have access to the drive mapping you created.

You might want to try to login as that user and create a persistant drive mapping, however persistent drive mappings are only restored on an interactive logon, which services typically don't perform, so this still might not solve your problem (unless you keep that user logged in). See also: https://stackoverflow.com/questions/182750/map-a-network-drive-to-be-used-by-a-service

You might have more luck using a UNC path in your cd_storage_conf.xml, although then you can't enter any credentials. The path mapping is intended for local storage only, so perhaps it is an option to move the entire Deployer to Azure?

3
  • 2
    +1 for recommending to move the deployer to Azure. Recommended reading stackoverflow.com/questions/5106179/…
    – Shiva
    Commented Jan 11, 2016 at 15:56
  • To move the deployer to Azure, you'll need to go IAAS. If you can get the deployer working in Azure Websites/Services (which is likely possible) the license file will be an issue. Commented Jan 11, 2016 at 17:55
  • Thanks Bart,Nuno and Chris. Network drive are indeed not accessible via services or background process. I tried using UNC for the file storage \\xxxxxxxxxxxx.file.core.windows.net\cms-shared in the deployer cd_storage config and started getting "incorrect user or password" error. As mentioned in blogs.iis.net/davidso/azurefile i created a local user on deployer VM server and provided the same username and password as the storage file. Creating a new apppool with identity set to custom and providing this local user solved the problem. Commented Jan 11, 2016 at 18:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.