GetFile on Network mapped drives?

Getfile is not working in a way that makes sense:

It works to retrieve a file on the C drive
It doesn’t work to retrieve a file on a mapped drive.

Have modified the fileaccesscontrol file and reloaded the wmpublic package.

So now some other strangeness:
I can load a file with getfile if it’s local.
I wire the SAME filename that I loaded locally including path to the Checkexistence file service and I get an error for Java syntax.

Hi,
Share the error and also share the contents of fileaccesscontrol.cnf file

The strange thing is, I can run getfile with the following filename:
C:\Users\WebM\Desktop\Shipped History CSVs\ShippedHistory2013H2.XLS
and it works.

Then, I put the same filename into checkFileExistence.
In the very next flow step

Launch started: 2014-07-03 17:30:18.031
Configuration name: ImportShippedHistoryReport
Configuration location: C:/Users/WebM/workspace95/.metadata/.plugins/org.eclipse.debug.core/.launches/ImportShippedHistoryReport.launch

com.wm.app.b2b.server.ServiceException: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at pub.file.checkPathValidity(file.java:140)
at pub.file.checkFileExistence(file.java:392)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:443)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:640)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:49)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:289)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:34)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:368)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:544)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:383)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:244)
at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:205)
at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:259)
at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:511)
at com.wm.lang.flow.FlowState.stepIncremental(FlowState.java:428)
at com.wm.lang.flow.FlowState.invoke(FlowState.java:331)
at wm.server.flowdebugger.stepFlow(flowdebugger.java:935)
at wm.server.flowdebugger.execute(flowdebugger.java:465)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:453)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:640)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:49)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:289)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:34)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:368)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:544)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:383)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:244)
at com.wm.app.b2b.server.comm.DefaultServerRequestHandler.handleMessage(DefaultServerRequestHandler.java:119)
at com.wm.app.b2b.server.HTTPMessageHandler.process(HTTPMessageHandler.java:164)
at com.wm.app.b2b.server.HTTPDispatch.handleRequest(HTTPDispatch.java:174)
at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:382)
at com.wm.util.pool.PooledThread.run(PooledThread.java:119)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:414)
at java.io.File.getCanonicalPath(File.java:589)
at java.io.File.getCanonicalFile(File.java:614)
at pub.file.checkPathValidity(file.java:129)
… 48 more

Launch completed: 2014-07-03 17:30:18.032

File access control file looks like:

allowedWritePaths=c:/batchprocess/out

allowedReadPaths=c:/users/webm/desktop/pipeline/process05;c:/batchprocess/in; p:/Aerospace_Sales/Admin;p:/Aerospace_Sales/Admin/Backlog Analysis; //Sjc-fnp02/Aerospace_Sales/Admin/Backlog Analysis
allowedDeletePaths=
c:/batchprocess/in;c:/batchprocess/out

I tried using P as a mapped driver, the server name, and others. I know the C paths are working because I can read files in those directories.

If you are running WM IS as windows service, check the user that’s used to run the service. Default is “Local System Account”. Check with your system admin, either you can allow the system account to access the network directory, or start the service with another account that has access to those directories.

It seems really a network access issue for the directory that is mounted/shared and should be accessible to the IS user (Administrator)…Please check with your sys admin and see if they can settle these access issues.

HTH,
RMG

Hi Scott,

Please call pub.io:close immediately after getFile.

e.g.

getFile
close
checkFileExistence

HTH,

Thanks,
Rankesh

Tried that one. Same error. But, it may have been a contributing factor.

I did get it to work, but not with a mapped drive. In the end what worked was:

  1. Changed the running user of the WM IS service
  2. Updated the fileaccess config to look like:
    //Sjc-fnp02/sjcdata/Aerospace_Sales/Admin/Backlog Analysis
  3. Then, the filename I loaded in the service was:
    \sjc-fnp02\sjcdata\Aerospace_Sales\Admin\backlog1.xls

It looks a little weird because the value in the pipeline was \\sjc-fnp02\sjcdata\ … and on.

It never did get the mapped drive correctly and still doesn’t, but I can live with that.

THANKS ALL!

Glad to hear it resolved with some work around resolution.

Filemount and shared with absolute/relative paths testing always be a pain.I can understand your frustrations.

HTH,
RMG

Hi, I am working on local and trying to access the server path where i have the files resided. I am able to access through RUN but via getFile i am getting the error as;

com.wm.app.b2b.server.ServiceException: [ISS.0086.9256] File [\WSH000098\filerepository\warranty\input\WarrantyHeader.txt] does not exist.

Please help me in getting this resolved.

Regards,
Rashmi

Are you running IS with a user that has access to that directory?

Did you check with the IS user has the access to this mount/shared folder path ? Please check with you sysadmin also and troubleshoot the issue.

HTH,
RMG

wM version?

Did you update the patch in fileaccesscontrol.cnf which is present in WmPublic/config folder. Be sure to reload the package after the changing fileaccesscontrol.cnf

Typo error

patch=path