This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 30th, when you will be able to use this site as normal.

    Forum Stats

  • 3,889,961 Users
  • 2,269,775 Discussions
  • 7,916,823 Comments

Discussions

ifs and rmi

3004
3004 Member Posts: 204,171 Green Ribbon
hi,
i wrote a rmi-server which accesses the ifs-repositry and retrievs the folderlist (similar to the "jdb error" post). now i can call the server-method "RmiServer.list(...)" which returns a string containing some folder-names. but: trying to call that RmiServer.list() one more time causes the client to hang. i took a look at the servers thread dump and notices one differenc in the thread-lists before and after the ifs-access.
one thread seems to loop/deadlock/hang/../?.
here is the thread dump after the ifs-call:

Full thread dump:
"LeaseChecker" (TID:0xec99eb90, sys_thread_t:0x154888, state:CW, thread_t: [email protected], sp:0xef080ea0 threadID:0xef081dd8, stack_base:0xef081d6c, stack_size:0x20000) prio=5
sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:303)
java.lang.Thread.run(Thread.java)
"KeepAlive" (TID:0xec99d528, sys_thread_t:0x108020, state:CW, thread_t: [email protected], sp:0xef110ea0 threadID:0xef111dd8, stack_base:0xef111d6c, stack_size:0x20000) prio=5
sun.rmi.transport.KeepAlive.run(ObjectTable.java:182)
java.lang.Thread.run(Thread.java)
"Reaper" (TID:0xec99d568, sys_thread_t:0xe2d28, state:CW, thread_t: [email protected], sp:0xef140e40 threadID:0xef141dd8, stack_base:0xef141d6c, stack_size:0x20000) prio=5
sun.rmi.transport.Reaper.run(ObjectTable.java:199)
java.lang.Thread.run(Thread.java)
"TCP Accept-1" (TID:0xec99d198, sys_thread_t:0xf5e10, state:CW, thread_t: [email protected], sp:0xef170ea0 threadID:0xef171dd8, stack_base:0xef171d6c, stack_size:0x20000) prio=5
sun.rmi.transport.tcp.TCPTransport.retryServerSocket(TCPTransport.java:344)
sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:430)
java.lang.Thread.run(Thread.java)
"SIGQUIT handler" (TID:0xec9982a0, sys_thread_t:0x8b3b8, state:R, thread_t: [email protected], sp:0xef1f1af0 threadID:0xef1f1dd8, stack_base:0xef1f1d6c, stack_size:0x20000) prio=0 current thread
"Finalizer thread" (TID:0xec998088, sys_thread_t:0x8b328, state:CW, thread_t: [email protected], sp:0xef341a30 threadID:0xef341dd8, stack_base:0xef341d6c, stack_size:0x20000) prio=1
"main" (TID:0xec9980b0, sys_thread_t:0x724f8, state:CW, thread_t: [email protected], sp:0xefffdad8 threadID:0x24190, stack_base:0x0, stack_size:0x800000) prio=5
Monitor Cache Dump:
<unknown key> (0x154888): <unowned>
Waiting to be notified:
"LeaseChecker" (0x154888)
<unknown key> (0xf5e10): <unowned>
Waiting to be notified:
"TCP Accept-1" (0xf5e10)
[email protected]/ECA883D8: owner "TCP Accept-1" (0xf5e10, 1 entry)
<unknown key> (0xe2d28): <unowned>
Waiting to be notified:
"Reaper" (0xe2d28)
<unknown key> (0x108020): <unowned>
Waiting to be notified:
"KeepAlive" (0x108020)
Registered Monitor Dump:
Thread queue lock: owner "SIGQUIT handler" (0x8b3b8, 1 entry)
Waiting to be notified:
"main" (0x724f8)
Name and type hash table lock: <unowned>
String intern lock: <unowned>
JNI pinning lock: <unowned>
JNI global reference lock: <unowned>
BinClass lock: <unowned>
Class loading lock: <unowned>
Java stack lock: <unowned>
Code rewrite lock: <unowned>
Heap lock: <unowned>
Has finalization queue lock: <unowned>
Finalize me queue lock: <unowned>
Waiting to be notified:
"Finalizer thread" (0x8b328)
Monitor registry: owner "SIGQUIT handler" (0x8b3b8, 1 entry)

comparing the thread dumps before and after the ifs-access differs in one thread: the rmi thread "TCP Accept-1". above shown is the dump afterwards. before ifs-access the "TCP Accept-1" thread stack is as follows:

"TCP Accept-1" (TID:0xec99d198, sys_thread_t:0xf5e10, state:R, thread_t: [email protected], sp:0xef171040 threadID:0xef171dd8, stack_base:0xef171d6c, stack_size:0x20000) prio=5
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:379)
java.net.ServerSocket.implAccept(ServerSocket.java:198)
java.net.ServerSocket.accept(ServerSocket.java:181)
sun.rmi.transport.proxy.HttpAwareServerSocket.accept(HttpAwareServerSocket.java:70)
sun.rmi.transport.tcp.TCPTransport.run(TCPTranspo rt.java:376)
java.lang.Thread.run(Thread.java)


server-system: solaris 2.6, jdk: ifs' own jdk.
client-system: nt-4.0, jdk: sun jdk 1.1.6

i would be very happy for any help, so thanks in advice,

alex

Comments

  • 3004
    3004 Member Posts: 204,171 Green Ribbon
    I don't think we (Oracle) can invest the amount of time it would take to help you with this problem, since it involves RMI, which is not an Oracle product.

    My only (somewhat uninformed) thoughts are that there may be problems with the RMI itself.

    We have seen many problems with JDK 1.1.6, and recommend you using JDK 1.1.8.

    Perhaps that might help.
  • 3004
    3004 Member Posts: 204,171 Green Ribbon
    i do have tried jdk 1.1.8.
    it brings the same problems.
    on the other hand: running the client-programm on the sun-box (the rmi- and ifs-server) with the ifs' own jdk causes the same problems.
    at the moment i'm going on my own network-protocoll.
    ciao,
    alex
This discussion has been closed.