2

iSeries に接続して IFS ファイルを開く単純な Java プログラム (JTOpen を使用) があります。

System.out.println("by ipaddress");
AS400 as400 = new AS400("130.3.3.333", "user", "password");
System.out.println("as400 connected? = " + as400.getCcsid());
//handle the exception if the file is null 
IFSFileInputStream as400File = new IFSFileInputStream(as400, "//PDF//00000104.PDF");
System.out.println("is available" + as400File.getPath());
as400File.close();

DMZ 内の 1 つのサーバーではすべて正常に動作しますが、別の建物 (まだ DMZ 内) にあるサーバー上の (おそらく同一の) VM イメージでは、次のエラーが発生します。

by ipaddress
as400 connected? = 37
IO security exception
java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at com.ibm.as400.access.PortMapper.getServerSocket(PortMapper.java:170)
    at com.ibm.as400.access.AS400ImplRemote.getConnection(AS400ImplRemote.ja
va:975)
    at com.ibm.as400.access.AS400ImplRemote.connect(AS400ImplRemote.java:390
)
    at com.ibm.as400.access.AS400.connectService(AS400.java:870)
    at com.ibm.as400.access.IFSFileInputStream.connectAndOpen(IFSFileInputSt
ream.java:416)
    at com.ibm.as400.access.IFSFileInputStream.<init>(IFSFileInputStream.jav
a:150)
    at com.ibm.as400.access.IFSFileInputStream.<init>(IFSFileInputStream.jav

接続は正常に機能しますが、接続例外が発生します。

どんなアイデアでも大歓迎です。両方のサーバーと iSeries の間のファイアウォールで同じポートが開いています。

4

1 に答える 1

2

個々のポートにはそれぞれ複数のサービスがあり、最初の接続では 1 つしか開かれません。ファイル サービスについては、 jt400 faqを確認してください。このポートはファイアウォールで開かれていないはずです。

于 2010-11-05T14:31:21.593 に答える