1

I have developed a MarkLogic XQuery application that has been running on an old Windows server that has C: drive and E: drive local storage, where millions of images are stored on the X: drive outside of the ML databases. My code therefore accesses an image by a path that begins "X:...". That all worked fine.

However, the server is being replaced, and the drive that contains the images will now be a shared disk that can be accessed by all the nodes in a cluster. My IT guys have mapped the shared drive to the letter X:, so that when I remote desktop into the new server, I can see an X: drive. But MarkLogic fails to read files from it. For example, if I use this command:

xdmp:filesystem-directory("X:")

I get the error message "The system cannot find the path specified".

I am prepared if necessary to drop the requirement for an X: path, if that is not possible, and instead use a path such as "\mySharedDrive\Data...". But even that is not working, as I get a "The user name or password is incorrect." error (I get WORSE error messages if there is anything wrong with the path, so I know that ML is at least reaching the "Data" directory).

My network IT support guys are stumped, so was wondered if anywone here could help?

My suspicion is that it is something to do with ML running as a user called "SYSTEM"?

The new server is a Windows 10 Enterprise LTSC server if that makes any difference.

Thanks,

Neil.

Neil Bradley
  • 131
  • 6
  • Sorry, a couple of corrections. The first metnion of E: drive should refer to X: drive that is mentioned thereafter. Also, the final example shoould of course begin with double backslashes. – Neil Bradley Feb 09 '21 at 10:09
  • 1
    I recommend filing a support ticket. I vaguely recall MarkLogic does not support mapped network drives, but my knowledge is likely dated. Support can confirm, and help find a solution. – grtjn Feb 09 '21 at 11:31

1 Answers1

1

It's likely that MarkLogic is setup to run as a local system account, so it won't be able to authenticate to the network. This means it won't be able to access any network resources that require a username/password.

If you change the startup user to an authenticated network user, it will use those credentials to access the network resources.

Be aware that when you change the user for an existing installation you will need to make sure that you update the directory permissions for the directories used by MarkLogic, as noted in the documentation:

Windows Service Parameters

Mike Gardner
  • 6,611
  • 5
  • 24
  • 34
  • Thanks for the response Michael. I did not install it but the person who did will have followed the standard installation instructions, so the user will be "SYSTEM" as you surmised. – Neil Bradley Feb 09 '21 at 14:34
  • How do you specify a different user, or change the user after installation? Also, does your response only address the second approach, or is that the reason why I cannot use E: too? – Neil Bradley Feb 09 '21 at 14:36
  • 1
    @NeilBradley https://www.howtogeek.com/school/using-windows-admin-tools-like-a-pro/lesson8/ The 'Log On' tab in the service properties is where that is set. The local user is probably the reason that both methods didn't work. I would retry both methods after updating the user information, as I'm not sure the first won't won't work. – Mike Gardner Feb 09 '21 at 15:06
  • That worked. I still cannot use the "X:" drive path, but at least I can now access the drive. Thanks so much for the help. – Neil Bradley Feb 10 '21 at 10:48