Blocking in WeakIdentityMap
Patrick Wright <[email protected]>
| Newsgroups | gmane.comp.java.sun.jini |
|---|---|
| Message-ID | <[email protected]> |
Hi everyone,
I'm new to the list (just lurking recently) and to Jini (about a month).
We are currently trying some load tests on service accessed via Jini
to see if/what problems we might have taking this further. We've taken
a chunk of our code that was previously hosted in-process in a web
container and extracted it as a Jini service. In our test setup, we
have client(s) each accessing the webserver, who makes a request to
the Jini service, who turns around and hits various data sources
before returning the request.
Our tests are running on Linux with JDK 6, Tomcat 5.5, Jini 2.1.
We have our Jini hosted in a Tomcat webserver (via Bantam, which so
far I like a lot) and are running the NetBeans profiler against that
server. We then load a bunch of client threads which access the
frontend webserver which calls the Jini service; all requests go
against the same service method as fast as they can. Once we hit about
15 concurrent threads (service clients), we see (in the profiler)
quite a lot of waiting on monitors for the server's threads. Using
jstack, we're seeing quite a lot of waits related to
com.sun.jini.collection.WeakIdentityMap (an example is at the end of
the mail). We have one other area in our own code which is blocking,
but in the jstack output it's outweighed by the blocks on the WIM.
We found a discussion in the mailing lists related to WIM from last
summer but it was inconclusive.
http://archives.java.sun.com/cgi-bin/wa?A2=ind0607&L=jini-users&D=0&P=10153
Thoughts?
Thanks
Patrick
"http-8080-Processor12" daemon prio=10 tid=0xacf75400 nid=0x5605
waiting for monitor entry [0xaca83000..0xaca84030]
java.lang.Thread.State: BLOCKED (on object monitor)
at net.jini.security.policy.DynamicPolicyProvider.getDomainPermissions(DynamicPolicyProvider.java:259)
- waiting to lock <0xae6ec030> (a
com.sun.jini.collection.WeakIdentityMap)
at net.jini.security.policy.DynamicPolicyProvider.implies(DynamicPolicyProvider.java:170)
at com.sun.jini.start.AggregatePolicyProvider.implies(AggregatePolicyProvider.java:201)
at java.security.ProtectionDomain.implies(ProtectionDomain.java:213)
--
at java.lang.Thread.run(Thread.java:619)
--------------------------------------------------------------------------
Getting Started: http://www.jini.org/wiki/Category:Getting_Started
Community Web Site: http://jini.org
jini-users Archive: http://archives.java.sun.com/archives/jini-users.html
Unsubscribing: email "signoff JINI-USERS" to [email protected]