Thread Stuck At HTTPClient/StreamDemultiplexor

Dear All,
i have this thread stuck at SOA 11.1.1.7
"[STUCK] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" id=15 idx=0x64 tid=30108 prio=1 alive, in native, daemon
at jrockit/net/SocketNativeIO.readBytesPinned(Ljava/io/FileDescriptor;[BIII)I(Native Method)
at jrockit/net/SocketNativeIO.socketRead(SocketNativeIO.java:32)[inlined]
at java/net/SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I(SocketInputStream.java)[inlined]
at java/net/SocketInputStream.read(SocketInputStream.java:129)[optimized]
at com/sun/net/ssl/internal/ssl/InputRecord.readFully(InputRecord.java:293)
at com/sun/net/ssl/internal/ssl/InputRecord.read(InputRecord.java:331)
at com/sun/net/ssl/internal/ssl/SSLSocketImpl.readRecord(SSLSocketImpl.java:798)
^-- Holding lock: java/lang/Object@0x19e01d6f8[thin lock]
at com/sun/net/ssl/internal/ssl/SSLSocketImpl.readDataRecord(SSLSocketImpl.java:755)
at com/sun/net/ssl/internal/ssl/AppInputStream.read(AppInputStream.java:75)
^-- Holding lock: com/sun/net/ssl/internal/ssl/AppInputStream@0x19e01b608[biased lock]
at HTTPClient/BufferedInputStream.fillBuff(BufferedInputStream.java:206)
at HTTPClient/BufferedInputStream.read(BufferedInputStream.java:126)
at HTTPClient/StreamDemultiplexor.read(StreamDemultiplexor.java:362)
^-- Holding lock: HTTPClient/StreamDemultiplexor@0x19e01b500[recursive]
at HTTPClient/RespInputStream.read(RespInputStream.java:151)
^-- Holding lock: HTTPClient/StreamDemultiplexor@0x19e01b500[recursive]
at HTTPClient/RespInputStream.read(RespInputStream.java:112)
at HTTPClient/Response.readResponseHeaders(Response.java:1144)
at HTTPClient/Response.getHeaders(Response.java:867)
^-- Holding lock: HTTPClient/StreamDemultiplexor@0x19e01b500[thin lock]
at HTTPClient/Response.getStatusCode(Response.java:331)
Regards
Haitham Elmhalawy

SOA Version:-11.1.1.7

Similar Messages

  • Oracle Application Server 10g thread stuck issue.

    We are having,
    Oracle Application Server 10g [10.1.3.1 + 10.1.3.4patch] along with Oracle Http Server 2.0
    Now there is a issue of thread stuck [some application threads taking longer times] due to which the application server is unable to respond and sometimes it reinits the oc4j instance.
    => Is there any setting to increase the Thread Stuck Time in OAS.
    => Is there any setting to stop the auto reinit of oc4j instance.
    => Does the auto re init of oc4j get logged in opmn.log as well as in service.log.
    It will be really helpful if any advice on the same.
    Thanks in advance...
    ManojC

    Look in httpd.conf file anything that is like thread in there you will find a simple description of the Directives.
    Greetings.

  • Thread stuck in socketConnect() while openning JDBC connection

    We are suferring a very strange behaviour in one of our servers.
    Sometimes a thread stucks for serveral minutes while obtaining a JDBC connection, this is the stack trace down to our method:
    "[STUCK] ExecuteThread: '82' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE native
         java.net.PlainSocketImpl.socketConnect(Native Method)
         java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
         java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
         java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
         java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
         java.net.Socket.connect(Socket.java:529)
         oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:150)
         oracle.net.nt.ConnOption.connect(ConnOption.java:130)
         oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:353)
         oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
         oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:686)
         oracle.net.ns.NSProtocol.connect(NSProtocol.java:246)
         oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1056)
         oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
         oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:538)
         oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
         oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
         oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
         oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280)
         oracle.jdbc.xa.client.OracleXADataSource.getPooledConnection(OracleXADataSource.java:482)
         oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:156)
         oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:101)
         weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:477)
         weblogic.jdbc.common.internal.XAConnectionEnvFactory.createResource(XAConnectionEnvFactory.java:177)
         weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1249)
         weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1166)
         weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:450)
         weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:342)
         weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:419)
         weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:324)
         weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:94)
         weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:63)
         weblogic.jdbc.jta.DataSource.getXAConnectionFromPool(DataSource.java:1677)
         weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1445)
         weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:446)
         weblogic.jdbc.jta.DataSource.connect(DataSource.java:403)
         weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364)
         org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:126)
         org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94)
         org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
         org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:327)
         org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:291)
         org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.reconnect(DatasourceAccessor.java:558)
         org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.reconnect(DatabaseAccessor.java:1433)
         org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.incrementCallCount(DatasourceAccessor.java:302)
         org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:570)
         org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:526)
         org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:529)
         org.eclipse.persistence.internal.sessions.IsolatedClientSession.executeCall(IsolatedClientSession.java:133)
         org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:206)
         org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:192)
         org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:664)
         org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:2582)
         org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2553)
         org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:439)
         org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1076)
         org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:740)
         org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1036)
         org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:407)
         org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1122)
         org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2908)
         org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1291)
         org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1273)
         org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1233)
         org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery(EntityManagerImpl.java:778)
         org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal(EntityManagerImpl.java:722)
         org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:616)
         org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:495)
         sun.reflect.GeneratedMethodAccessor182.invoke(Unknown Source)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:597)
         weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:106)
         weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:77)
         weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:87)
         weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:18)
         $Proxy71.find(Unknown Source)
         com.ericsson.adm.ejb.PromoProcessorMDB.processRequest(PromoProcessorMDB.java:181)
    I checked OS tcp_syn_retries, is 5, an exception should be raised after 180 seconds, isnt?
    Even more weird is that sometimes a entityManager.find() give us null object even if the database record of the sougth persisted object exists.
    It seems that we have a network problem here but WLS / JVM is not throwing exceptions so we cant show to network administrators this problem.
    Our Weblogic is version 10.3.4 running on Redhat 5 with kernel 2.63.18-194.e15.
    JDK reports itself as "Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)".
    We have the exact replica of the faulty server (hardware and configuration) running the same application in the same domain connected to the same network switch connecting to the same Oracle instance but in that server we haven't suffer such problem.
    Edited by: user13413948 on 15-feb-2012 15:37
    Edited by: user13413948 on 15-feb-2012 15:38

    Io exception: The Network Adapter could not establish the connection..
    I'd check in tools->embedded oc4j server preferences (current workspace app / data sources) and do a refresh now.
    Next, make sure your app module config files reference the right connection by right clicking the app module and selecting configuration. lastly, make sure the project points to the right database connection by right clicking project -> properties, business components.

  • AG2712A: "THREAD STUCK IN DEVICE DRIVER" BSOD

    I am experiencing random computer restarts with the following error message: "THREAD STUCK IN DEVICE DRIVER" There are lots of results that basically relate to graphics card. For instance: http://www.dell.com/support/troubleshooting/us/en/04/KCS/KcsArticles/ArticleView?c=us&l=en&s=gen&docid=584512#Error6 but updating drivers or even reinstalling windows completely clean doesn't help the issue.
    For now I've disabled AMD video graphics card in the device manager which stopped random restarts, but that's obviously not fixing my issue just a temporary workaround because I can't use the card for gaming. MSI recently updated AMD drivers, perhaps it's causing it. I hope someone has some other suggestions I can try.

    Quote from: carlos.m.nunez on 18-February-14, 12:46:47
    I am having the same issue. Blue screen and same error. I know its a driver issue for graphics because i cant even play titanfall because of it. I would like to know what you did to figure it out. Bceause i cant figure out any updates that work or any alternative. Please someone help.
    First thing is create a ticket with MSI. The more people report the more likely MSI will look into this. Then simply download latest amd drivers. When doing install I unchecked everything except drivers. Also, I am using beta.

  • JDBC Threads stuck on reserving connections

    Hello,
    I am using WLS 10gR3 single server on Solaris 5.10, with Oracle 10g DB that resides on the same server as weblogic and is dedicated to WLS only.
    Under load, I see several threads (10-12) that are stuck on :
    "[ACTIVE] ExecuteThread: '53' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x000000010968e800 nid=0x9d waiting for monitor entry [0xfffffffd7e0f3000..0xfffffffd7e0ff840]
    java.lang.Thread.State: BLOCKED (on object monitor)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:343)
    - waiting to lock <0xfffffffdb1ca0940> (a java.util.HashSet)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:316)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:106)
    at weblogic.jdbc.pool.Driver.connect(Driver.java:149)
    at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:642)
    at weblogic.jdbc.jts.Driver.connect(Driver.java:124)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:338)
    at com.xx.yy.security.HibernateManagerProvider.getConnection(HibernateManagerProvider.java:69)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:421)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1538)
    at org.hibernate.loader.Loader.doQuery(Loader.java:661)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    at org.hibernate.loader.Loader.loadEntity(Loader.java:1851)
    at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
    "[ACTIVE] ExecuteThread: '42' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x000000010aaf4400 nid=0x92 waiting for monitor entry [0xfffffffd7f6f3000..0xfffffffd7f6ff6c0]
    java.lang.Thread.State: BLOCKED (on object monitor)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:343)
    - waiting to lock <0xfffffffdb1ca0940> (a java.util.HashSet)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:316)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:106)
    at weblogic.jdbc.pool.Driver.connect(Driver.java:149)
    at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:642)
    at weblogic.jdbc.jts.Driver.connect(Driver.java:124)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:338)
    at com.xx.yy.security.HibernateManagerProvider.getConnection(HibernateManagerProvider.java:69)
    The thread that holds the lock is :
    [ACTIVE] ExecuteThread: '51' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x0000000105ee8800 nid=0x9b runnable [0xfffffffd7e4f4000..0xfffffffd7e4ff740]
    java.lang.Thread.State: RUNNABLE
    at java.util.AbstractCollection.contains(AbstractCollection.java:89)
    at java.util.AbstractCollection.containsAll(AbstractCollection.java:278)
    at java.util.AbstractSet.equals(AbstractSet.java:78)
    at weblogic.security.acl.internal.AuthenticatedSubject.equals(AuthenticatedSubject.java:428)
    at java.util.HashMap.getEntry(HashMap.java:349)
    at java.util.HashMap.containsKey(HashMap.java:335)
    at java.util.HashSet.contains(HashSet.java:184)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:343)
    - locked <0xfffffffdb1ca0940> (a java.util.HashSet)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:316)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:106)
    at weblogic.jdbc.pool.Driver.connect(Driver.java:149)
    at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:642)
    at weblogic.jdbc.jts.Driver.connect(Driver.java:124)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:338)
    at com.xx.yy.security.HibernateManagerProvider.getConnection(HibernateManagerProvider.java:69)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:421)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1538)
    at org.hibernate.loader.Loader.doQuery(Loader.java:661)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    at org.hibernate.loader.Loader.doList(Loader.java:2211)
    at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2127)
    at org.hibernate.loader.Loader.list(Loader.java:2087)
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
    at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:305)
    at com.xx.yy.db.HibernateTemplateEx$10.doInHibernate(HibernateTemplateEx.java:537)
    at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:369)
    *The datasource is configured within the EAR with :*
    <?xml version="1.0" encoding="UTF-8"?>
    <jdbc-data-source
    xmlns="http://www.bea.com/ns/weblogic/jdbc-data-source"
    xmlns:sec="http://www.bea.com/ns/weblogic/90/security"
    xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/jdbc-da
    ta-source http://www.bea.com/ns/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd">
    <name>OracleDS</name>
    <jdbc-driver-params>
    <url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=thehost)(PORT=1521))(CONNEC
    T_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ora10)))</url>
    <driver-name>oracle.jdbc.driver.OracleDriver</driver-name>
    <properties>
    <property>
    <name>user</name>
    <value>myuser</value>
    </property>
    </properties>
    <password-encrypted>{3DES}nhYBET5FfK9uUUJZNI4pVg==</password-encrypted>
    </jdbc-driver-params>
    <jdbc-connection-pool-params>
    <initial-capacity>300</initial-capacity>
    <max-capacity>300</max-capacity>
    <capacity-increment>5</capacity-increment>
    <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
    <statement-cache-size>10</statement-cache-size>
    <statement-cache-type>LRU</statement-cache-type>
    </jdbc-connection-pool-params>
    <jdbc-data-source-params>
    <jndi-name>OracleDS</jndi-name>
    <scope>Global</scope>
    <global-transactions-protocol>LoggingLastResource</global-transactions-protocol>
    </jdbc-data-source-params>
    </jdbc-data-source>
    Monitoring the pool I see that barely 50 connections are used at peak load, and there are no waiters for connections nor wait time. DBA says there's no issue on the DB side and there's no limit to the number of connections WLS can make.
    I cannot see any reason why a thread would stuck on reserving for the pool, as said before, there are plenty of free connections.
    Can anyone advise please ?

    Hi Joe and thanks for having a look at this.
    During 6 thread dumps, taken at 10 seconds interval, the thread did stay there.
    The JVM is SUN's 1.6 64bit that comes with the Solaris Installation, I believe. I'll try to upgrade or switch to Jrockit.

  • Threads stuck in "waiting on condition"

    Hi,
    Our application is a muti-threaded application which is polling the SNMP network elements. We have used the third-party adventnet API for polling mechanism.
    We find that after the application runs for about one day, some of the threads are in 'WAIT' state waiting for a condition for a very long time. The wait is seen in AdventNet's API - SnmpSession.checkSyncResponse.
    The pstack output is pasted below:
    ----------------- lwp# 96 / thread# 96 --------------------
    ff2cab38 lwp_cond_wait (baee90, baee78, f0cfee88, 0)
    ff2b1d98 lwpcond_timedwait (baee90, baee78, f0cfef20, 39f4e40, 6d3c, e7d390) + 1c
    fecf61ec __1cNObjectMonitorEwait6MxipnGThread__v_ (6c00, baee78, f0cfef20, ff17f8d0, baee90, ff1a0930) + 778
    fecf59c4 __1cSObjectSynchronizerEwait6FnGHandle_xpnGThread__v_ (baebe0, 0, 64, ff17f914, f0cff00c, 497c) + d8
    fecf55d8 JVM_MonitorWait (0, bae784, 0, 64, baebe0, ff1869e4) + 2f0
    f9135170 * *java/lang/Object.wait(J)V
    f953bba4 * *com/adventnet/snmp/snmp2/SnmpSession.checkSyncResponse(I)I+46 (line 2585)
    f953ca60 * *com/adventnet/snmp/snmp2/SnmpSession.getResponse(IJZ)Lcom/adventnet/snmp/snmp2/SnmpPDU;+8 (line 2483)
    f9005874 * com/adventnet/snmp/snmp2/SnmpSession.syncSend(Lcom/adventnet/snmp/snmp2/SnmpPDU;)Lcom/adventnet/snmp/snmp2/SnmpPDU;+105 (line 2415)
    f9005874 * com/adventnet/snmp/snmp2/SnmpEngineEntry.discoverSnmpEngineID(Lcom/adventnet/snmp/snmp2/SnmpSession;II)[B+326 (line 673)
    f9005874 * com/adventnet/snmp/snmp2/SnmpEngineEntry.discoverSnmpEngineID(Lcom/adventnet/snmp/snmp2/SnmpSession;)[B+4 (line 566)
    f9005874 * com/adventnet/snmp/snmp2/usm/USMUtils.doDiscovery(Lcom/adventnet/snmp/snmp2/SnmpSession;Lcom/adventnet/snmp/snmp2/ProtocolOptions;)Lcom/adventnet/snmp/snmp2/SnmpEngineEntry;+199 (line 1629)
    f9005874 * com/adventnet/snmp/snmp2/usm/USMUtils.init_v3_parameters(Ljava/lang/String;[BILjava/lang/String;Ljava/lang/String;Lcom/adventnet/snmp/snmp2/ProtocolOptions;Lcom/adventnet/snmp/snmp2/SnmpSession;Z)V+159 (line 1270)
    f98351fc * *com/adventnet/snmp/beans/SnmpServer.create_v3_tables()I+578 (line 2542)
    f90058b8 * com/alcatel/omc/nodebim/snmpmediation/polling/PollingTimerTask.addSnmpEntries()V+95 (line 1015)
    f9884000 * *com/alcatel/omc/nodebim/snmpmediation/polling/PollingTimerTask.poll()V+865 (line 438)
    f9005764 * com/alcatel/omc/nodebim/snmpmediation/polling/PollerManagerServant.poll(Lcom/alcatel/omc/nodebim/snmpmediation/polling/SnmpMe     diationPoller;)V+4 (line 264)
    f9005764 * com/alcatel/omc/nodebim/snmpmediation/polling/PollRequest.call()V+8 (line 55)
    f99f249c * *com/alcatel/omc/fwk/activeobjects/Scheduler.run()V+250 (line 192)
    f910e938 * com/alcatel/omc/fwk/activeobjects/Scheduler.run()V+105 (line 186)
    f9000218 * StubRoutines (1)
    fecdd540 __1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_ (1, baebe0, f0cffb98, f0cffab8, f0cffb9c, 0) + 5b8
    fecf4f80 __1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_ (596c, baebe0, bae770, bae77c, baeb5c, b110de18) + 18c
    fecf4ddc __1cMthread_entry6FpnKJavaThread_pnGThread__v_ (b110de18, baebe0, ff195cac, d5812ad8, bae770, ff195798) + 12c
    fecf4c60 __1cKJavaThreadDrun6M_v_ (baebe0, 4c00, ff18435c, 0, 6400, ff16c000) + 2d0
    ff03cc90 __1cG_start6Fpv_0_ (baebe0, ff186a1c, ff17f8dc, 0, 3418, ff16c000) + 200
    ff2c6d4c _lwp_start (0, 0, 0, 0, 0, 0)
    -----------------  lwp# 97 / thread# 97  --------------------
    ff2cab38 lwp_cond_wait (bafab0, bafa98, 0, 0)
    fecf5fcc __1cNObjectMonitorEwait6MxipnGThread__v_ (bafab0, bafa98, ff1953c8, 0, ff1a0930, bafa70) + 558
    fecf59c4 __1cSObjectSynchronizerEwait6FnGHandle_xpnGThread__v_ (baeeb0, 0, 0, ff17f914, f0bff6fc, 497c) + d8
    fecf55d8 JVM_MonitorWait (0, baf494, 0, 0, baeeb0, ff1869e4) + 2f0
    f9135170 * *java/lang/Object.wait(J)V
    f9812aa4 * *java/lang/Object.wait()V+2 (line 474)
    f9812aa4 * *EDU/oswego/cs/dl/util/concurrent/BoundedBuffer.take()Ljava/lang/Object;+73 (line 164)
    f99f20b4 * *com/alcatel/omc/fwk/activeobjects/Scheduler.run()V+189 (line 189)
    f910e938 * com/alcatel/omc/fwk/activeobjects/Scheduler.run()V+105 (line 186)
    f9000218 * StubRoutines (1)
    fecdd540 __1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_ (1, baeeb0, f0bffb18, f0bffa38, f0bffb1c, 0) + 5b8
    fecf4f80 __1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_ (596c, baeeb0, baf480, baf48c, baf86c, b110f6f0) + 18c
    fecf4ddc __1cMthread_entry6FpnKJavaThread_pnGThread__v_ (b110f6f0, baeeb0, ff195cac, d5812ad8, baf480, ff195798) + 12c
    fecf4c60 __1cKJavaThreadDrun6M_v_ (baeeb0, 4c00, ff18435c, 0, 6400, ff16c000) + 2d0
    ff03cc90 __1cG_start6Fpv_0_ (baeeb0, ff186a1c, ff17f8dc, 0, 3418, ff16c000) + 200
    ff2c6d4c _lwp_start (0, 0, 0, 0, 0, 0)
    On checking the AdventNet API, it seems that there is an explicit wait called only for 100milliseconds. Could someone let me know why these threads are blocked in waiting state for a very long time?
    Regards,
    Padma                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Anand_Sharma wrote:
    Hi,
    Our application is a muti-threaded application which is polling the SNMP servers. We have used the third-party adventnet API for polling mechanism.
    Can it be an application issue?
    This looks like an application issue in Adventent
    ===========================
    ----------------- lwp# 6921 / thread# 6921 --------------------
    ffffffff7eed3890 lwp_mutex_timedlock (10011be40, 0)
    ffffffff7e25b4d8 __1cHMonitorEwait6Mil_i_ (ffffffff7e78e210, 120660740, ffffffff7e78ff94, ffffffff7e7943fc, 9800, 9ba8) + 328
    ffffffff7e2b5f08 __1cIVMThreadHexecute6FpnMVM_Operation__v_ (ffffffff7e78e2f0, 0, a000, a2e8, c558, 3fea88) + 228
    ffffffff7e30929c __1cODeoptimizationNuncommon_trap6FpnKJavaThread_i_pn0ALUnrollBlock__ (124da4140, fffffffffffffffc, fffffffffffffffc, ff000000, 100, 0) + 874The frames below are java frames. It has called monitor.wait().
    ffffffff7606c940 ???????? (fffffffffffffffc, 3, fffffffe365cc558, 11, 6, 817fe2)
    ffffffff764eea1c ???????? (fffffffe365c17e8, ffffffff724c0848, fffffffe365c1ee8, fffffffe365c1820, ffffffff71c63190, fffffffa910feec0)
    "Device Poller Thread" prio=5 tid=0x0000000124da4140 nid=0x1b09 waiting on condition [0xfffffffa910fe000..0xfffffffa910ff8b0]
         at com.adventnet.snmp.snmp2.ASNTypes.encodeLength(ASNTypes.java:105)This java method above has called monitor.wait(). If you have access to the adventnet take a look at it and see why it is waiting here.
    jstack on 1.6 can detect deadlock. Run jstack on this and find out if there is any deadlock. I suspect the thread supposed to notify these waiting threads might have got stuck.

  • Thread STUCK for more than 10minutes at  com.tangosol.util.SegmentedHashMap

    <[STUCK] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "707" seconds working on the request "weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl@11ddce1", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
    java.lang.Object.wait(Native Method)
    com.tangosol.util.SegmentedHashMap.contendForSegment(SegmentedHashMap.java:1391)
    com.tangosol.util.SegmentedHashMap.lockSegment(SegmentedHashMap.java:1301)
    com.tangosol.util.SegmentedHashMap.lockBucket(SegmentedHashMap.java:1266)
    com.tangosol.util.SegmentedHashMap.invokeOnKey(SegmentedHashMap.java:1058)
    com.tangosol.util.SegmentedConcurrentMap.lock(SegmentedConcurrentMap.java:197)
    com.tangosol.net.cache.CachingMap.get(CachingMap.java:462)

    Hi,
    A 2019 ms delay could be caused by a number of things. It could be network related or more likely as the message says the WebLogic node could have been doing a GC. As your WebLogic node is a Cluster member you need to make sure that its GC is properly tuned to avoid long GC pauses as this can destabelize the whole cluster. I see you are using 3.5.3/465p8 which is an older version of Coherence and lacks the newer node death detection algorithms. I know from the project I work on that also uses 3.5.3/465p8 that long GCs on cluster members can cause other nodes in the cluster to die if you get GC pauses that are too long or too frequent.
    I doubt that this message is related to the stuck thread issue in your original post, though it is hard to tell for certain.
    JK

  • How to stop/kill/interrupt a thread stuck on reflection method invoke

    Hi all,
    I have a thread that loads some class using reflection and invokes a method in it.
    I want to be able to stop that thread if needed by the user.
    For some reason, interrupt on that thread doesn't do anything - thread is still inside the invoke call.
    Is there any way to stop it?

    The only really safe way to have isolated code is to a seperate process you can kill.
    I wouldn't suggest using Thread.stop unless you have to, but that may be the case here. Stopping the thread this way might be worse than just discarding the Thread and moving on. (depending on what it is doing) i.e. another option is to ignore the thread and hope it doesn't matter. ;)
    However, before you do that I suggest you call Thread.getStackTrace() and log it. This can be useful in diagnosing WHY your thread needed to be kill and possibly give you a chance to fix it next time.

  • Threads Stuck weblogic.ejb20.internal.MDListener@d36ef2

    Hello, we have an application over WebLogic Server 8.1 SP4 and we see this message in logs:
    <Dec 7, 2005 11:15:09 AM CET> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '27' for queue: 'weblogic.kernel.Default'
    has been busy for "797" seconds working on the request "weblogic.ejb20.internal.MDListener@d36ef2", which is more than the c
    onfigured time (StuckThreadMaxTime) of "600" seconds.>
    When i have a thread dump the most of threads are :
    "ExecuteThread: '36' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x0074b380 nid=0x3f in Object.wait() [c267f000..
    c267fc28]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xccb4d908> (a weblogic.jms.store.StoreRequest)
    at java.lang.Object.wait(Object.java:429)
    at weblogic.jms.store.StoreRequest.waitForIOComplete(StoreRequest.java:465)
    - locked <0xccb4d908> (a weblogic.jms.store.StoreRequest)
    at weblogic.jms.backend.BEXATranEntrySubscribe.finishPrepare(BEXATranEntrySubscribe.java:95)
    at weblogic.jms.backend.BEXAResource.commit(BEXAResource.java:1087)
    at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1291)
    at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:519)
    at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:421)
    at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:1883)
    at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2515)
    at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2446)
    at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:280)
    at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:246)
    at weblogic.ejb20.internal.MDListener.execute(MDListener.java:400)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    Any idea?
    Thanks

    Lourdes,
    We are encountering the exact same issue and thread dump. Did you ever determine a resolution?
    An example thread dump from our server.
    "ExecuteThread: '38' for queue: 'rplarge1'" daemon prio=10 tid=009e7460 nid=111 lwp_id=1102694 in Object.wait() [0x0e611000..0x0e6104f0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.jms.store.StoreRequest.waitForIOComplete(StoreRequest.java:465)
         - locked <5593dbe0> (a weblogic.jms.store.StoreRequest)
         at weblogic.jms.backend.BEXATranEntrySend.finishPrepare(BEXATranEntrySend.java:61)
         at weblogic.jms.backend.BEXAResource.prepare(BEXAResource.java:943)
         at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1195)
         at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:411)
         at weblogic.transaction.internal.ServerSCInfo$1.execute(ServerSCInfo.java:253)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.Kernel.executeIfIdle(Kernel.java:378)
         at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:244)
         at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:2301)
         at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2015)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:275)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:244)
         at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:299)
         at weblogic.ejb20.internal.StatelessEJBObject.postInvoke(StatelessEJBObject.java:140)
    We are running wls8.1sp3 on HPUX.
    Thanks

  • Reclaiming stuck execute threads

    Does anyone out there know of a setting in WLS 7 where you can tell it to reclaim
    an execute thread that has been stuck for a while? There are settings to detect
    stuck threads, but I would like it to reclaim (kill stuck one and create a new
    one and add back to execute queue) that stuck thread after a set amount of time.
    Will it already do this on its own; am I just not waiting long enough?

    Hi Chris,
    "Chris" <[email protected]> wrote in message
    news:3eb143e6$[email protected]..
    Does anyone out there know of a setting in WLS 7 where you can tell it toreclaim
    an execute thread that has been stuck for a while? There are settings todetect
    stuck threads, but I would like it to reclaim (kill stuck one and create anew
    one and add back to execute queue) that stuck thread after a set amount oftime.
    In Java there is no way to "kill" a stuck thread, and there is a good
    reason for this.
    The feature you are taking about is for diadnistic purposes
    and should be used as such.
    Will it already do this on its own; am I just not waiting long enough?If it's really stuck, you have to get a thread dump and find out
    why thread stuck. You can get a thread dump by pressing
    <Ctrl+Break> in Widows shell or sending kill -3 to the server
    process under Unix.
    Regards,
    Slava Imeshev

  • Detecting and Pinning a stuck thread

    While using WLS 7.0 there exists a problem where some execute threads get stuck (i.e don't respond) and do not release the associated resources such as connections, files etc. How does one detect such a stuck thread ? Also, how can we go about pinning stuck threads?

    "Haziq Pathan" <[email protected]> wrote in message news:3ffbfad4$[email protected]..
    While using WLS 7.0 there exists a problem where some execute threads
    get stuck (i.e don't respond) and do not release the associated resources
    such as connections, files etc. How does one detect such a stuck thread ?Basically there is a server health monitor thread that periodically checks
    threads and reports those who started execution and didn't finish it within
    configured time.
    Also, how can we go about pinning stuck threads?The best thing to do is to get a thread dump and see where the thread stuck,
    and deliver a fix for the problem.
    Hope this helps.
    Regards,
    Slava Imeshev

  • STUCK thread equals elevated CPU

    Agile PLM 9.3.0.1
    Weblogic 10.0
    Solaris 10
    Recently installed Agile 9301 in production. Three times in the week since go-live CPU has elevated up to 100% (twice on one managed host, once on the other), forcing me to kill Agile on that managed host and restart. We sure did not see anything like this on the development environment.
    * I'd like to know why this is happening.
    * Obviously I'd like to make it stop.
    * If I can't do that I can take steps to make the problem less deadly to the system.
    Installed VisualVM to look inside the JVM. I've got a STUCK thread that seems to be elevating the CPU past 25% (baseline appears to be around 10%). Now I have more data to confuse myself with. Here are the snipped bits relating to this thread from the thread dump.
    * Does this mean anything to anyone?
    * Any advice on how to track down a problem like this?
    Thread Dump snip with the STUCK threads
    "[STUCK] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'" - Thread t@101
    java.lang.Thread.State: RUNNABLE
    at java.util.HashMap.get(HashMap.java:303)
    at com.agile.ui.web.action.ClientSession.getAttribute(ClientSession.java:154)
    at com.agile.ui.web.action.ActionContext.getAttribute(ActionContext.java:385)
    at com.agile.ui.pcm.common.model.AbstractDataModel.saveContext(AbstractDataModel.java:1701)
    at com.agile.ui.pcm.common.CMBaseModuleHandler.removeAll(CMBaseModuleHandler.java:153)
    at com.agile.ui.pcm.common.CMBaseModuleHandler.tabContextChanged(CMBaseModuleHandler.java:136)
    at com.agile.ui.web.action.ActionServlet.raiseRequestEvents(ActionServlet.java:1240)
    at com.agile.ui.web.action.ActionServlet.handleRequest(ActionServlet.java:658)
    at com.agile.ui.web.action.ActionServlet.doPost(ActionServlet.java:309)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.pcm.common.filter.RemoteFSRequestFilter.doFilter(RemoteFSRequestFilter.java:148)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.web.filter.LoggingFilter.doFilter(LoggingFilter.java:108)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.pcm.common.filter.WebClientLog.doFilter(WebClientLog.java:78)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.jspbook.GZIPFilter.doFilter(GZIPFilter.java:21)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.pcm.common.filter.SSOTicketFilter.doFilter(SSOTicketFilter.java:84)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Locked ownable synchronizers:
    - None
    "[STUCK] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" - Thread t@14
    java.lang.Thread.State: RUNNABLE
    at java.util.HashMap.get(HashMap.java:303)
    at com.agile.ui.web.action.ClientSession.getAttribute(ClientSession.java:154)
    at com.agile.ui.web.action.ActionContext.getAttribute(ActionContext.java:385)
    at com.agile.ui.pcm.common.ObjectViewHandler.setGridPage(ObjectViewHandler.java:20617)
    at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.agile.ui.web.action.ActionServlet.invokeMethod(ActionServlet.java:1062)
    at com.agile.ui.web.action.ActionServlet.handleRequest(ActionServlet.java:667)
    at com.agile.ui.web.action.ActionServlet.doPost(ActionServlet.java:309)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.pcm.common.filter.RemoteFSRequestFilter.doFilter(RemoteFSRequestFilter.java:148)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.web.filter.LoggingFilter.doFilter(LoggingFilter.java:108)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.pcm.common.filter.WebClientLog.doFilter(WebClientLog.java:78)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.jspbook.GZIPFilter.doFilter(GZIPFilter.java:21)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.agile.ui.pcm.common.filter.SSOTicketFilter.doFilter(SSOTicketFilter.java:84)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Locked ownable synchronizers:
    - None

    Did you take multiple thread dumps to see if the thread is always in the same place? It seems that a "Runnable" thread is making progress and not blocked on any locks.
    There is additional troubleshooting steps at support.oracle.com with a document called Oracle WebLogic Server Core Server / JVM / Memory Issues Support Patterns - Unexpected High CPU Usage with WLS
    Document ID 874292.1 in the Knowledge Base
    The article is a bit old, but the approach should still be sound. I'm not sure if VisualVM gives you CPU by thread or not, but I know it has a profiler.

  • JAX-WS Client hangs thread

    Hello
    I have a web application which consumes a remote web service, it has been in live use for more than a year.
    The web service consumed is part of an off the shelf application which fails approx 6 times a year. When it fails, the GlassFish server hosting my web application is also liable to fail. Thus a failure of the purchased application results in the failure of a whole set of other applications.
    The Web Service client was written using JAX-WS. When the web service fails, calls to the client are liable to hang and never return. There is no timeout and no error, just a hung thread in GlassFish. In GlassFish the default maximum for request processing threads is 5, if all of them hang Glassfish is dead.
    jstack output shows JAX-WS gets stuck, it does a read without a timeout and never regains control. I have seen threads stuck for in excess of 1 hour 45 minutes, they remain stuck until the application server is re-started.
    To work around this issue I have written a class to predict if a connection is likely to be healthy or not, if not it attempts to replace the connection with a new one. I am reasonably confident this will reduce the likelihood of failures but I believe there must be a better way to avoid the overhead of getting a new connection every time.
    1) Has anybody else suffered this same issue, if so how did you get round it ?
    2) Does anybody agree with me that the reads done by JAX-WS should timeout if necessary and failure to do so is a weakness/bug in the JAX-WS client ?
    What follows is an example of jstack output showing a hung thread.
    ----------------- t@162 -----------------
    0xff2cc360     _read + 0x8
    0xfead8e18     JVM_Read + 0xe4
    0xfadbc154     Java_java_net_SocketInputStream_socketRead0 + 0x1fc
    0xf8c0c280     * java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) bci:-1830175952 (Interpreted frame)
    0xf8c0c224     * java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) bci:0 (Interpreted frame)
    0xf8c058b8     * java.net.SocketInputStream.read(byte[], int, int) bci:84 line:129 (Interpreted frame)
    0xf8c50588     <C2IAdapter>
    0xf949c8fc     0xf949c8fc     * java.io.BufferedInputStream.fill() bci:175 line:218 (Compiled frame)
    0xf8fbac24     0xf8fbac24     * java.io.BufferedInputStream.read1(byte[], int, int) bci:44 line:256 (Compiled frame)
    0xfa889c6c     0xfa889c6c     * sun.net.www.http.HttpClient.parseHTTPHeader(sun.net.www.MessageHeader, sun.net.ProgressSource, sun.net.www.protocol.http.HttpURLConnection) bci:51 line:681 (Compiled frame)
    0xf8cbfc44     <I2CAdapter>
    0xf8c057a8     * sun.net.www.http.HttpClient.parseHTTP(sun.net.www.MessageHeader, sun.net.ProgressSource, sun.net.www.protocol.http.HttpURLConnection) bci:30 line:626 (Interpreted frame)
    0xf8c057a8     * sun.net.www.protocol.http.HttpURLConnection.getInputStream() bci:246 line:983 (Interpreted frame)
    0xf8c05874     * java.net.HttpURLConnection.getResponseCode() bci:16 line:367 (Interpreted frame)
    0xf8c058b8     * com.sun.xml.ws.transport.http.client.HttpClientTransport.checkResponseCode() bci:5 line:201 (Interpreted frame)
    0xf8c05764     * com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(com.sun.xml.ws.api.message.Packet) bci:345 line:149 (Interpreted frame)
    0xf8c05d3c     * com.sun.xml.xwss.XWSSClientPipe.process(com.sun.xml.ws.api.message.Packet) bci:76 line:118 (Interpreted frame)
    0xf8c05d3c     * com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(com.sun.xml.ws.api.message.Packet) bci:6 line:115 (Interpreted frame)
    0xf8c52980     <C2IAdapter>
    0xfab36e58     0xfab36e58     * com.sun.xml.ws.api.pipe.Fiber.__doRun(com.sun.xml.ws.api.pipe.Tube) bci:206 line:595 (Compiled frame)
    0xf8c547bc     <I2CAdapter>
    0xf8c05874     * com.sun.xml.ws.api.pipe.Fiber._doRun(com.sun.xml.ws.api.pipe.Tube) bci:31 line:554 (Interpreted frame)
    0xf8c05874     * com.sun.xml.ws.api.pipe.Fiber.doRun(com.sun.xml.ws.api.pipe.Tube) bci:84 line:539 (Interpreted frame)
    0xf8c05874     * com.sun.xml.ws.api.pipe.Fiber.runSync(com.sun.xml.ws.api.pipe.Tube, com.sun.xml.ws.api.message.Packet) bci:48 line:436 (Interpreted frame)
    0xf8c05874     * com.sun.xml.ws.client.Stub.process(com.sun.xml.ws.api.message.Packet, com.sun.xml.ws.client.RequestContext, com.sun.xml.ws.client.ResponseContextReceiver) bci:155 line:248 (Interpreted frame)
    0xf8c05874     * com.sun.xml.ws.client.sei.SEIStub.doProcess(com.sun.xml.ws.api.message.Packet, com.sun.xml.ws.client.RequestContext, com.sun.xml.ws.client.ResponseContextReceiver) bci:4 line:135 (Interpreted frame)
    0xf8c05874     * com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(java.lang.Object, java.lang.Object[], com.sun.xml.ws.client.RequestContext, com.sun.xml.ws.client.ResponseContextReceiver) bci:64 line:109 (Interpreted frame)
    0xf8c05874     * com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(java.lang.Object, java.lang.Object[]) bci:14 line:89 (Interpreted frame)
    0xf8c05874     * com.sun.xml.ws.client.sei.SEIStub.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) bci:24 line:118 (Interpreted frame)
    0xf8c05d3c     * $Proxy64.updateProblem(com.peregrine.servicecenter.pws.pm.UpdateProblemRequest) bci:16 (Interpreted frame)
    0xf8c05d3c     * com.reuters.gsm.sf.consumePeregWs.PeregPm.addUpdate(java.lang.String, int, int, java.lang.String, java.lang.String, java.util.Date) bci:341 line:129 (Interpreted frame)
    Regards, Vince

    [http://stackoverflow.com/questions/2592303/how-do-i-set-the-jax-ws-client-request-timeout-programatically-on-jboss]

  • Coherence SimpleParser class is not thread safe?

    Coherense has very convinent XML utility class, which we use it a lot within our Coherence related applications.
    But we encounter some mysterious lock up (maybe deadlock?) issue and identified that it might be that the com.tangosol.run.xml.SimpleParser class is not thread safe.
    We are using tomcat 6 and spring 2.0.6.
    One of the webapp has 2 bean which implements InitializingBean interface.
    Bean A's afterPropertiesSet() method will use com.tangosol.run.xml.XmlHelper.loadXml method to parse a XML file.
    Bean B's afterPropertiesSet() method will acts as a tcp extend client and retrieve some data from a coherence cluster. Which I believe coherence will also use it's XML utility class when parsing the configuration files.
    We encounter tomcat lockup (which never finish startup webapp deployment porcess) randomly like 1 out of 2 or 3 tries.
    Use jconsole and connect to tomcat we can see that the main thread stuck in SimpleParser class. Here is the thread dump.
    Name: main
    State: RUNNABLE
    Total blocked: 156 Total waited: 0
    Stack trace:
    com.tangosol.run.xml.SimpleParser.instantiateDocument(SimpleParser.java:150)
    com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:115)
    - locked com.tangosol.run.xml.SimpleParser@f10c77
    com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:71)
    com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:84)
    com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:109)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
    - locked java.util.concurrent.ConcurrentHashMap@dee55c
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
    - locked java.lang.Object@d21555
    org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
    org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
    org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
    org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
    org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
    - locked org.apache.catalina.core.StandardContext@1c64ed8
    org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    - locked java.util.HashMap@76a6d9
    org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
    org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
    org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
    org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    - locked org.apache.catalina.core.StandardHost@1c42c4b
    org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    - locked org.apache.catalina.core.StandardHost@1c42c4b
    org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    - locked org.apache.catalina.core.StandardEngine@37fd24
    org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    org.apache.catalina.core.StandardService.start(StandardService.java:516)
    - locked org.apache.catalina.core.StandardEngine@37fd24
    org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    - locked [Lorg.apache.catalina.Service;@1cc55fb
    org.apache.catalina.startup.Catalina.start(Catalina.java:566)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    After we add the depends-on tag to enforce bean B wait on bean A to finish initialization, we no longer encounter the lockup during tomcat startup.
    We suspect that maybe SimpleParser class is not thread safe and will cause potential deadlock issue.
    Edited by: user639604 on Jun 22, 2009 10:36 AM

    While it doesn't show up as deadlock, I believe it probably is, as evidenced by these two threads:
    "Timer-0" prio=10 tid=0xcb9a2800 nid=0x454b in Object.wait() [0xcb6e0000..0xcb6e10a0]
       java.lang.Thread.State: RUNNABLE
         at com.tangosol.run.xml.SimpleParser.instantiateDocument(SimpleParser.java:150)
        at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:115)
         - locked <0xf44e52f0> (a com.tangosol.run.xml.SimpleParser)
         at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:71)
         at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:99)
         at com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:129)
         at com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:95)
         at com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:72)
         at com.tangosol.util.ExternalizableHelper.<clinit>(ExternalizableHelper.java:4466)
         at com.evidentsoft.opcache.coherence.OPCacheCoherenceStorage.retrieve(OPCacheCoherenceStorage.java:341)
         at com.evidentsoft.opcache.coherence.OPCacheCoherenceStorage.retrieve(OPCacheCoherenceStorage.java:420)
         at com.evidentsoft.opcache.OPCacheManager.find(OPCacheManager.java:68)
         at com.evidentsoft.logserver.coherence.ClusterDetector.detectNewClusters(ClusterDetector.java:97)
         at com.evidentsoft.logserver.coherence.ClusterDetector.access$000(ClusterDetector.java:19)
         at com.evidentsoft.logserver.coherence.ClusterDetector$1.run(ClusterDetector.java:67)
         at java.util.TimerThread.mainLoop(Unknown Source)
         at java.util.TimerThread.run(Unknown Source)
    "main" prio=10 tid=0x08059000 nid=0x4539 in Object.wait() [0xf7fd0000..0xf7fd11f8]
       java.lang.Thread.State: RUNNABLE
         at com.tangosol.run.xml.SimpleParser.instantiateDocument(SimpleParser.java:150)
         at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:115)
         - locked <0xf44ecd90> (a com.tangosol.run.xml.SimpleParser)
         at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:71)
         at com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:84)
         at com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:109)
         at com.evidentsoft.coherence.util.ClusterConfigurator.generateConfigFile(ClusterConfigurator.java:319)
         at com.evidentsoft.coherence.util.ClusterConfiguratorProxy.afterPropertiesSet(ClusterConfiguratorProxy.java:51)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
         - locked <0xd65efb88> (a java.util.concurrent.ConcurrentHashMap)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
         - locked <0xd65efc28> (a java.lang.Object)
         at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
         at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
         at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
         at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
         at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
         - locked <0xd6092f60> (a org.apache.catalina.core.StandardContext)
         at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
         - locked <0xd54ff278> (a java.util.HashMap)
         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
         at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
         at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
         at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
         at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
         - locked <0xd54ff1e8> (a org.apache.catalina.core.StandardHost)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
         - locked <0xd54ff1e8> (a org.apache.catalina.core.StandardHost)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
         - locked <0xd4fa60b8> (a org.apache.catalina.core.StandardEngine)
         at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
         at org.apache.catalina.core.StandardService.start(StandardService.java:516)
         - locked <0xd4fa60b8> (a org.apache.catalina.core.StandardEngine)
         at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
         - locked <0xd4f17ea0> (a [Lorg.apache.catalina.Service;)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)The reason it isn't showing up as a deadlock in the thread dump is that the ExternalizableHelper static initializer isn't completing, so the other thread (blocking it) is waiting indefinitely on that class to become available.
    Peace,
    Cameron Purdy | Oracle Coherence

  • Struck thread issue with weblogic 9.2

    Hi,
    could you please help me find out the reason why lots of thread in my weblogic application are stuck. My application is a jsp based web application which is using accenture grnds framework and i can see lots of threads stuck at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire. Blow is the thread dump from my application.
    "[STUCK] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x03564170 nid=0x42 in Object.wait() [0xb047e000..0xb047f9f0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xce4d2500> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xce4d2500> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    "[STUCK] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x03ee3420 nid=0x41 in Object.wait() [0xb057e000..0xb057fb70]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xce6ca288> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xce6ca288> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    "[STUCK] ExecuteThread: '13' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x03ee3258 nid=0x40 in Object.wait() [0xb067e000..0xb067faf0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xcd98b768> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xcd98b768> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    "[STUCK] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x00581f28 nid=0x3f in Object.wait() [0xb077f000..0xb077fc70]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xcdd7ad30> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xcdd7ad30> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    "[STUCK] ExecuteThread: '11' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x0229a610 nid=0x3e in Object.wait() [0xb087e000..0xb087fbf0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xce6ca288> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xce6ca288> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    "[STUCK] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x01cad6a0 nid=0x3d in Object.wait() [0xb097e000..0xb097f970]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xce4d2500> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xce4d2500> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    "[STUCK] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x02389c58 nid=0x3c in Object.wait() [0xb0a7e000..0xb0a7f8f0]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xcd98b768> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xcd98b768> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    "[STUCK] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x012ba168 nid=0x3b in Object.wait() [0xb0b7e000..0xb0b7fa70]
    at java.lang.Object.wait(Native Method)
    - waiting on <0xcdd7ad30> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at java.lang.Object.wait(Object.java:474)
    at EDU.oswego.cs.dl.util.concurrent.Semaphore.acquire(Semaphore.java:108)
    - locked <0xcdd7ad30> (a EDU.oswego.cs.dl.util.concurrent.Semaphore)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.acquireSemaphore(SiiamSinglePointOfEntry.java:283)
    at com.telstra.siiam.web.arch.screensflow.SiiamSinglePointOfEntry.doGet(SiiamSinglePointOfEntry.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    Please help me.

    Thanks for reply Jay. I check my code but didn't understand where is the problem here is the code snap could you please check and pin point me where is things wrong.
    package com.telstra.siiam.web.arch.screensflow;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import javax.management.MBeanServer;
    import javax.management.MBeanServerFactory;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import mx4j.util.StandardMBeanProxy;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.grnds.structural.web.GrndsExchangeContext;
    import org.grnds.structural.web.GrndsHttpServlet;
    import EDU.oswego.cs.dl.util.concurrent.Semaphore;
    import com.telstra.siiam.web.app.common.JspKeys;
    import com.telstra.siiam.web.app.common.SessionKeys;
    import com.telstra.siiam.web.arch.stats.ServletStats;
    import com.telstra.siiam.web.arch.stats.StatisticsHolder;
    import com.telstra.siiam.web.arch.stats.StatisticsHolderMBean;
    import com.telstra.siiam.web.arch.businessobjectdata.CaseDO;
    * Single point of entry (Controller) of the web-application.
    * <P>
    * The intent of this class is to add pre/post processings (logging/security
    * check etc) on top of the basic GRNDS controller.
    * <P>
    * The current implementation checks that the incoming request it not
    * out-of-context.
    public class SiiamSinglePointOfEntry extends GrndsHttpServlet {
    // Constants -----------------------------------------------------
    private static final Log _statsLogger = LogFactory.getLog("ServletStats");
    private static final Log _log =
    LogFactory.getLog(SiiamSinglePointOfEntry.class);
    private static final String REQUEST_SEMAPHORE = "ReqSemaphore";
         * Name of the request attribute added to incoming requests in order to
         * detect re-entrant calls.
    private static final String SEMAPHORE_OWNER = "Owner";
    // Attributes ----------------------------------------------------
    private MBeanServer _server;
    private StatisticsHolderMBean _holder;
    // Static --------------------------------------------------------
    // Constructors --------------------------------------------------
    // Public --------------------------------------------------------
    // Z implementation ----------------------------------------------
    // GrndsHttpServlet overrides
    public void init() throws ServletException {
    // System.out.println("[<SiiamSinglePointOfEntry> <init>] - calling init method of GrndsHttpServlet super class");
    super.init();
    // System.out.println("[<SiiamSinglePointOfEntry> <init>] - Called init method of GrndsHttpServlet super class");
    Iterator servers = MBeanServerFactory.findMBeanServer(null).iterator();
    if (!servers.hasNext()) {
    throw new IllegalStateException("No MBeanServer registered.");
    _server = (MBeanServer) servers.next();
    // System.out.println("[<SiiamSinglePointOfEntry> <init>] - server: " _server);
    _holder =
    (StatisticsHolderMBean) StandardMBeanProxy.create(
    StatisticsHolderMBean.class,
    _server,
    StatisticsHolder.NAME);
    // System.out.println("[<SiiamSinglePointOfEntry> <init>] - holder: " _holder.toString());
    protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)
    throws ServletException, IOException {
    // System.out.println("[<SiiamSinglePointOfEntry> <doPost>] - In doPost");
    /* capture user input in http request This code is written to only for debuging purpose */
         //########################Start####################################
              Enumeration params = arg0.getParameterNames();
              String paramName = null;
              String[] paramValues = null;
              //System.out.println("[<SiiamSinglePointOfEntry> <doPost>] - user input name value pair");
              while (params.hasMoreElements()) {
                   paramName = (String) params.nextElement();
                   paramValues = arg0.getParameterValues(paramName);
                   //System.out.println("\nParameter name is " + paramName);
                   for (int i = 0; i < paramValues.length; i++) {
                        //System.out.println(", value " + i + " is " +paramValues.toString());
    //########################End######################################
    long start = System.currentTimeMillis();
    try {
    acquireSemaphore(arg0);
    } catch (InterruptedException e) {
    throw new ServletException("Can not serialize requests.");
    try {
    if (checkFlow(arg0, arg1)) {
    // System.out.println("[<SiiamSinglePointOfEntry> <doPost>] - after checkflow arg1 " + arg1);
    super.doPost(arg0, arg1);
    } finally {
    releaseSemaphore(arg0);
    protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
    throws ServletException, IOException {
    // System.out.println("[<SiiamSinglePointOfEntry> <doGet>] - In doGet");
    /* capture user input in http request This code is written to only for debuging purpose */
         //########################Start####################################
              Enumeration params = arg0.getParameterNames();
              String paramName = null;
              String[] paramValues = null;
              //System.out.println("[<SiiamSinglePointOfEntry> <doGet>] - user input name value pair");
              while (params.hasMoreElements()) {
                   paramName = (String) params.nextElement();
                   paramValues = arg0.getParameterValues(paramName);
              //     System.out.println("\nParameter name is " + paramName);
                   for (int i = 0; i < paramValues.length; i++) {
                        //System.out.println(", value " + i + " is " +paramValues[i].toString());
    //########################End######################################
    long start = System.currentTimeMillis();
    try {
    acquireSemaphore(arg0);
    } catch (InterruptedException e) {
    throw new ServletException("Can not serialize requests.");
    try {
    if (checkFlow(arg0, arg1)) {
                   //System.out.println("[<SiiamSinglePointOfEntry> <doGet>] - after checkflow arg1 " + arg1);
    super.doGet(arg0, arg1);
    } finally {
    releaseSemaphore(arg0);
    // Protected -----------------------------------------------------
    protected boolean doPreExchange(GrndsExchangeContext ctx_)
    throws ServletException, IOException {
    // Dump the session attributes
    HttpSession session = ctx_.getSession();
    Enumeration enumVar = session.getAttributeNames();
    Collection <Object> sessionKeys = new ArrayList<Object>();
    while (enumVar.hasMoreElements()) {
    sessionKeys.add(enumVar.nextElement());
    if ( _log.isDebugEnabled() ) {
    _log.debug("Session attributes {" + sessionKeys + "}");
    super.doPreExchange(ctx_);
    Integer servletDepth =
    (Integer) ctx_.getSession().getAttribute("perf.count");
    if (null == servletDepth || servletDepth.intValue() == 0) {
    ctx_.getSession().setAttribute(
    "perf.start",
    new Long(System.currentTimeMillis()));
    ctx_.getSession().setAttribute("perf.count", new Integer(1));
    } else {
    ctx_.getSession().setAttribute(
    "perf.count",
    new Integer(servletDepth.intValue() + 1));
    return true;
    protected void doPostExchange(GrndsExchangeContext ctx_)
    throws ServletException, IOException {
    super.doPostExchange(ctx_);
    String escid = (String) ctx_.getSession().getAttribute(SessionKeys.ECSID);
    String caseObjid = "";
    CaseDO caseDO =
    (CaseDO) ctx_.getSession().getAttribute(SessionKeys.CASE_DETAILS);
    if (caseDO != null && caseDO._objid != null) {
    caseObjid = caseDO._objid;
    _log.info("{" + escid + "},{" + caseObjid + "}");
    Integer servletDepth =
    (Integer) ctx_.getSession().getAttribute("perf.count");
    if (servletDepth != null) {
    servletDepth = new Integer(servletDepth.intValue() - 1);
    ctx_.getSession().setAttribute("perf.count", servletDepth);
    if (servletDepth.intValue() == 0) {
    Long startTime =
    (Long) ctx_.getSession().getAttribute("perf.start");
    long duration = System.currentTimeMillis() - startTime.longValue();
    String statisticName =
    doGetConversationName(ctx_.getRequest())
    + "/"
    + doGetCommand(ctx_.getRequest())
    + "/"
    + (String) ctx_.getRequest().getAttribute(
    "grnds_web.command.branch");
    ServletStats servletStats = _holder.findServletStats(statisticName);
    servletStats.getServiceTime().addDuration(duration);
    if (_statsLogger.isDebugEnabled()) {
    StringBuffer servletStatsString = new StringBuffer();
    servletStatsString.append("<ServletStats>");
    servletStatsString.append("{" + statisticName + "},");
    servletStatsString.append(
    "{" + servletStats.getServiceTime().getCount() + "},");
    servletStatsString.append("{" + duration + "},");
    servletStatsString.append(
    + servletStats.getServiceTime().getAvgResponseTime()
    + "}");
    _statsLogger.debug(servletStatsString);
    } else {
    throw new IllegalStateException("Servlet Depth is null in doPostExchange");
    // Private -------------------------------------------------------
    private void acquireSemaphore(HttpServletRequest arg0)
    throws InterruptedException {
    // If the incoming request defines this attribute, then this request
    // has been forwarded by another servlet. In this case, one does not
    // need to acquire the semaphore as the thread is already the owner.
    Integer deepth = (Integer) arg0.getAttribute(SEMAPHORE_OWNER);
    // System.out.println("[<SiiamSinglePointOfEntry> <acquireSemaphore>] - deepth :" +deepth);
    if (null != deepth) {
    deepth = new Integer(deepth.intValue() + 1);
    arg0.setAttribute(SEMAPHORE_OWNER, deepth);
    return;
    //System.out.println("[<SiiamSinglePointOfEntry> <acquireSemaphore>] - trying to get semaphore value from request");
    HttpSession session = arg0.getSession();
    // One serializes the requests.
    Semaphore semaphore;
    // System.out.println("[<SiiamSinglePointOfEntry> <acquireSemaphore>] - http session value : " +session);
    synchronized (session) {
    semaphore = (Semaphore) session.getAttribute(REQUEST_SEMAPHORE);
    //System.out.println("[<SiiamSinglePointOfEntry> <acquireSemaphore>] - semaphore value from session : " +semaphore);
    if (null == semaphore) {
    semaphore = new Semaphore(1);
    session.setAttribute(REQUEST_SEMAPHORE, semaphore);
    semaphore.acquire();
    arg0.setAttribute(SEMAPHORE_OWNER, new Integer(1));
    private void releaseSemaphore(HttpServletRequest arg0) {
    // See acquireSemaphore for more details.
    Integer deepth = (Integer) arg0.getAttribute(SEMAPHORE_OWNER);
    int curDeepth = deepth.intValue();
    if (1 < curDeepth) {
    deepth = new Integer(curDeepth - 1);
    arg0.setAttribute(SEMAPHORE_OWNER, deepth);
    return;
    HttpSession session = arg0.getSession();
    // One serializes the requests.
    Semaphore semaphore;
    synchronized (session) {
    semaphore = (Semaphore) session.getAttribute(REQUEST_SEMAPHORE);
    semaphore.release();
    arg0.removeAttribute(SEMAPHORE_OWNER);
         * Check that the incoming request is valid, i.e. not out-of-context.
         * <P>
         * One uses the ScreenFlow object stored in session
         * (SessionKeys.SCREENS_FLOW) in order to perform this validation.
         * <P>
         * If the request is out-of-context, then one forwards the process to the
         * last screen defined by the ScreenFlow object.
         * @return true if the incoming request is valid and false otherwise.
    private boolean checkFlow(HttpServletRequest arg0, HttpServletResponse arg1)
    throws ServletException, IOException {
         // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] - in checkFlow");
    HttpSession session = arg0.getSession();
    // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] -session " + session);
    ScreenFlow screenFlow =
    (ScreenFlow) session.getAttribute(SessionKeys.SCREENS_FLOW);
    //System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] -screenFlow " + screenFlow);
    if (null == screenFlow) {
    screenFlow = new ScreenFlow();
    session.setAttribute(SessionKeys.SCREENS_FLOW, screenFlow);
    return true;
    String nextScreen = arg0.getServletPath() + arg0.getPathInfo();
    // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] -nextScreen " + nextScreen);
    // The ScreenFlow object records the URI + the query string.
    // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] - arg0.getQueryString() " + arg0.getQueryString());
    if (null != arg0.getQueryString()) {
              //System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] - in querystring null");
    nextScreen += "?" + arg0.getQueryString();
    // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] -nextScreen " + nextScreen);
    if (!screenFlow.isInContext(nextScreen)) {
              // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] - in not isInContext");
    screenFlow.setSnapshotContext(arg0);
    // Add an error message corresponding to the out-of-context
    // navigation.
    Map errorMap = (Map) arg0.getAttribute(JspKeys.ERRORS_REQUEST_KEY);
    // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] -errorMap " + errorMap);
    if (null == errorMap) {
    errorMap = new HashMap();
    System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] -errorMap in null" + errorMap);
    arg0.setAttribute(JspKeys.ERRORS_REQUEST_KEY, errorMap);
    errorMap.put("OCM", screenFlow.getOutOfContextErrorMessage());
    // dispatch to the previous screen defined by screenFlow.
    arg0.getRequestDispatcher(screenFlow.getLastURI()).forward(arg0, arg1);
    // System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] - before return false");
    return false;
    //System.out.println("[<SiiamSinglePointOfEntry> <checkFlow>] - before return true");
    return true;
    // Inner classes -------------------------------------------------

Maybe you are looking for

  • Looking for a better way to count responses to survey questions

    Hello all - I've created a survey for a site and now want to display the results for the site admins. I am simply trying to display the counts - the number of times a question has been answered a certain way. I realize that I may need to construct th

  • Replaced Expired Cert on ACS

    Hi, I replaced an ACS certificate that had been installed i then did the following: 1. Created a certificate request. 2. Issued the request to the enterprise CA. 3. Copied the certificate to an ftp server. 4. Installed the certificate on the ACS. 5.

  • Video Herr kleinemeier von DSAG Jahrestreffen

    Hallo zusammen, ich hoffe ich bin hier im richtigen Forum mit meinem Anliegen. Am DSAG Jahrestreffen dieses Jahr in Leipzig zeigte Michael Kleinemeier (Managing Director SAP Deutschland) zu seiner Keynote ein nettes kleines Video, dass die Anglizisme

  • Connecting to MS SQL 2005 via JDBC Driver

    I have an application in which I use Java to abstract database elements as objects and handle most of the server-side processing. This is done by creating a Java object via CreateObject(). The Java then connects to a MS SQL 2005 database using the JD

  • Some problems after update!

    I've updated my iphone 5s to 7.0.6 version of IOS. and after the update i didn't receive push-notifications from facebook. how can i fix it??? Здравствуйте.. После последней прошивки (7.0.6) на телефон перестали приходить пуш уведомления от фейсбука