ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Installation/Configuration Support » java.nio.invalidpathexception in MQ FTE

Post new topic  Reply to topic
 java.nio.invalidpathexception in MQ FTE « View previous topic :: View next topic » 
Author Message
petervh1
PostPosted: Fri Mar 18, 2022 3:27 am    Post subject: java.nio.invalidpathexception in MQ FTE Reply with quote

Centurion

Joined: 19 Apr 2010
Posts: 122

Hi all

MQ level p920-004-211027

I'm seeing the following when I try to transfer a file from Windows to AIX:

Code:

Class: com.ibm.wmqfte.thread.FTEThread
Instance: e1c24039
Method: uncaughtException
Probe: ABEND_001
Cause: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /IND_share/MB/transitin/xxxxxx-'xxxxx ? COMPLETED PO
- 59615_97016223Feb22.pdf'
java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /IND_share/MB/transitin/xxxxxx-'xxxxx ? COMPLETED PO - 59615_9701
6223Feb22.pdf'
at sun.nio.fs.UnixPath.encode(UnixPath.java:162)
at sun.nio.fs.UnixPath.<init>(UnixPath.java:86)
at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:294)
at java.io.File.toPath(File.java:2282)
at com.ibm.wmqfte.io.impl.FTEFileImpl.delete(FTEFileImpl.java:689)
at com.ibm.wmqfte.io.impl.FTEFileImpl.renameTo(FTEFileImpl.java:779)
at com.ibm.wmqfte.io.impl.FTEFileChannelImpl.complete(FTEFileChannelImpl.java:593)
at com.ibm.wmqfte.io.impl.FTEFileChannelImpl.close(FTEFileChannelImpl.java:528)
at com.ibm.wmqfte.transfer.frame.impl.TransferFrameReceiverImpl$ChunkProcessor.processCloseFileRequest(TransferFrameReceiverImpl.java:144)
at com.ibm.wmqfte.transfer.frame.impl.TransferFrameIOWorker.doWorkImpl(TransferFrameIOWorker.java:287)
at com.ibm.wmqfte.io.impl.FTEFileIOWorker.doWork(FTEFileIOWorker.java:118)
at com.ibm.wmqfte.io.impl.FTEFileIORequestQueue.run(FTEFileIORequestQueue.java:244)
at java.lang.Thread.run(Thread.java:825)
at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:70)
Stack ids:
com.ibm.wmqfte.io.impl.FTEFileChannelImpl.$sccsid=@(#) MQMBID sn=p920-004-211027 su=_z914pTdCEeygWfM06SbNXw pn=com.ibm.wmqfte.io/src/com/ibm/wmqfte/io/impl/
FTEFileChannelImpl.java
com.ibm.wmqfte.transfer.frame.impl.TransferFrameIOWorker.$sccsid=@(#) MQMBID sn=p920-004-211027 su=_z914pTdCEeygWfM06SbNXw pn=com.ibm.wmqfte.agent/src/com/i
bm/wmqfte/transfer/frame/impl/TransferFrameIOWorker.java
com.ibm.wmqfte.io.impl.FTEFileImpl.$sccsid=@(#) MQMBID sn=p920-004-211027 su=_z914pTdCEeygWfM06SbNXw pn=com.ibm.wmqfte.io/src/com/ibm/wmqfte/io/impl/FTEFile
Impl.java
com.ibm.wmqfte.transfer.frame.impl.TransferFrameReceiverImpl$ChunkProcessor.$sccsid=@(#) MQMBID sn=p920-004-211027 su=_z914pTdCEeygWfM06SbNXw pn=com.ibm.wmq
fte.agent/src/com/ibm/wmqfte/transfer/frame/impl/TransferFrameIOWorker.java
com.ibm.wmqfte.thread.FTEThread.$sccsid=@(#) MQMBID sn=p920-004-211027 su=_z914pTdCEeygWfM06SbNXw pn=com.ibm.wmqfte.common/src/com/ibm/wmqfte/thread/FTEThre
ad.java
com.ibm.wmqfte.io.impl.FTEFileIOWorker.$sccsid=@(#) MQMBID sn=p920-004-211027 su=_z914pTdCEeygWfM06SbNXw pn=com.ibm.wmqfte.io/src/com/ibm/wmqfte/io/impl/FTE
FileIOWorker.java
Arg[0]: Thread[FileIOWorker-1:0,5,main]


It looks as though the problem occurs when the Windows file name contains a long en dash (Alt 0151). Tis somehow gets changed to a quesion mark in the AIX file name.

I've checked the /etc/environment file. The relevant section contains:

Code:

LANG=C


The output from locale -a is:

Code:

LANG=C
LC_COLLATE="C"
LC_CTYPE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=


and the output from locale charmap is

Code:

ISO8859-1


I posted these because I was unsure as to whether I need to install a language pack.

Other file transfers work fine.

A similar file transfer using WinSCP also works fine when the Windows file has an en dash in the file name.

Thanks in advance
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Sun Mar 20, 2022 5:00 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2492
Location: Melbourne, Australia

Its failing in a Java base class java.nio.file.
I don't think FTE/MFT can do character conversion on path names.
WinSCP is not a Java app, so its quite possible that path behavior will be different.

Change the long en dash to a normal ASCII dash. You should not use Windows special characters if the path name is going to be referenced by a FTE/MFT agent running on a UNIX platform.
Unless this usage is documented by IBM, the results may be unpredictable (fail, or changed to some other UNIX character).
_________________
Glenn
Back to top
View user's profile Send private message
petervh1
PostPosted: Tue Mar 22, 2022 12:16 am    Post subject: Reply with quote

Centurion

Joined: 19 Apr 2010
Posts: 122

Can you give me some kind of reference for your statement:

Quote:

You should not use Windows special characters if the path name is going to be referenced by a FTE/MFT agent running on a UNIX platform


I'd like to use this as evidence to my customer.

Thanks
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Tue Mar 22, 2022 2:17 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2492
Location: Melbourne, Australia

https://www.ibm.com/docs/en/ibm-mq/9.2?topic=commands-ftecreatetransfer-start-new-file-transfer

Quote:
-dd destination_directory
Optional. The name of the directory the file is transferred to. Specify a valid directory name on the system where the destination agent is running.


I interpret this to mean that the directory name (and file name) need to be valid on the destination. A directory / file name that contains Windows special characters (single byte, not ASCII, not UTF eight) will most likely not be valid on UNIX systems.

The source directory / file specification is a bit more lucid:

Quote:
source_specification
....
Each file specification must be in one of the following categories:
File names
The name of a file, expressed in the appropriate notation for the system where the source agent is running.
....
Directories
The name of a directory, expressed in the appropriate notation for the system where the source agent is running.


I imagine the destination specification would have similar constraints. It needs to be "appropriate" for the OS.

HTH
_________________
Glenn
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Installation/Configuration Support » java.nio.invalidpathexception in MQ FTE
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.