ICE1.3 Tcp Communication Problem

in Help Center
Hi,all
I just deployed an ICE1.3 application on Solaris 8 (6800). and Start 3
Tcp socket ports(20000 30000 40000).They are ok at first, but failed to
communicate with part of clients about 3--4hours later. I can not telnet
these ports from some client system(windows 2000). But I checked the
status of these ports and find they are alive. I can telnet them on the
solaris system. Only part of client can not communicate with these port.
And the others work well. I can not find out why it failed to communicate
with these clients. Can any one give me some suggestion?
PS. Windows clients are COM programs. And Server is JAVA program.
Martin Sun
I just deployed an ICE1.3 application on Solaris 8 (6800). and Start 3
Tcp socket ports(20000 30000 40000).They are ok at first, but failed to
communicate with part of clients about 3--4hours later. I can not telnet
these ports from some client system(windows 2000). But I checked the
status of these ports and find they are alive. I can telnet them on the
solaris system. Only part of client can not communicate with these port.
And the others work well. I can not find out why it failed to communicate
with these clients. Can any one give me some suggestion?
PS. Windows clients are COM programs. And Server is JAVA program.
Martin Sun
0
Comments
Cheers,
Michi.
Michi.
Please refer the following message from client. You can see that the client can not establish tcp connection with the server sied. What should I do?:
C:\IDSClient\JVM1.4Client\sample1>run
[ Network: trying to establish tcp connection to 202.120.xxx.xxx:20000 ]
[ Network: trying to establish tcp connection to 202.120.xxx.xxx:20000 ]
ddddd
Ice.ConnectFailedException
error = 0
at IceInternal.Network.doConnect(Network.java:205)
at IceInternal.TcpConnector.connect(TcpConnector.java:30)
at IceInternal.OutgoingConnectionFactory.create(OutgoingConnectionFactor
y.java:262)
at Ice._ObjectDelM.setup(_ObjectDelM.java:316)
at Ice.ObjectPrxHelper.__getDelegate(ObjectPrxHelper.java:717)
at Ice.ObjectPrxHelper.ice_isA(ObjectPrxHelper.java:46)
at Ice.ObjectPrxHelper.ice_isA(ObjectPrxHelper.java:34)
at com.wiscom.is.idstar.IdentityManagerPrxHelper.checkedCast(IdentityMan
agerPrxHelper.java:1263)
at com.wiscom.is.impl.ice.IceIdentityManager.init(IceIdentityManager.jav
a:593)
at com.wiscom.is.impl.ice.IceIdentityManager.<init>(IceIdentityManager.j
ava:53)
at com.wiscom.is.IdentityFactory.<init>(IdentityFactory.java:71)
at com.wiscom.is.IdentityFactory.createFactory(IdentityFactory.java:38)
at GetUserAttribute.main(GetUserAttribute.java:16)
Caused by: java.net.ConnectException: Connection timed out: no further informati
on
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:521
)
at IceInternal.Network.doConnect(Network.java:177)
... 12 more
telnet 202.120.xxx.xxx 20000
You should see something like:
Ice<other characters>...
Also, can you try this with Ice 2.0.0 please? This way we don't have to install old versions here in order examine the line numbers in the stack trace.
So I try it again for 20000 port this time it works too. I don't know the reason. Can you give me some suggestion?
using config ../config/server.properties
[ Network: attempting to bind to tcp socket 202.120.xxx.xxx:20000 ]
[ Network: accepting tcp connections at 202.120.xxx.xxx:20000 ]
[ Network: accepted tcp connection
local address = 0.0.0.0:20000
remote address = 10.4.229.13:55159 ]
[ Network: sent 14 of 14 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
[ Network: received 5 of 14 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
[ Network: received 5 of 9 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
[ Network: received 4 of 4 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
warning: connection exception:
Ice.BadMagicException
badMagic[0] = -1
badMagic[1] = -12
badMagic[2] = -1
badMagic[3] = -3
[ Network: attempting to bind to tcp socket 202.120.xxx.xxx:20000 ]
[ Network: accepting tcp connections at 202.120.xxx.xxx:20000 ]
[ Network: accepted tcp connection
local address = 0.0.0.0:20000
remote address = 10.4.229.13:55159 ]
[ Network: sent 14 of 14 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
[ Network: received 5 of 14 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
[ Network: received 5 of 9 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
[ Network: received 4 of 4 bytes via tcp
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
warning: connection exception:
Ice.BadMagicException
badMagic[0] = -1
badMagic[1] = -12
badMagic[2] = -1
badMagic[3] = -3
at IceInternal.ThreadPool.read(ThreadPool.java:800)
at IceInternal.ThreadPool.run(ThreadPool.java:654)
at IceInternal.ThreadPool.access$100(ThreadPool.java:17)
at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:1063)
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159
[ Network: closing tcp connection
local address = 202.120.xxx.xxx:20000
remote address = 10.4.229.13:55159 ]
I traced the Network communication via snoop and foud out that the system got 3 client tcp requests on port 20000 but ICE server didn't answser any request. so the client failed to creat connection with server.
I think something wrong with ICE process. My system is Sparc Solaris8. Can you tell me if ICE1.3 support this platform?
Regards,
Chao Sun
http://www.zeroc.com/platforms.html
However, even though we only tested with Solaris 9, I would be very surprised if there were any problems with Solaris 8.