Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ASSERTION FAILED of replica-related stub in a non-clustered SLSB

0 views
Skip to first unread message

Gene Chuang

unread,
Jun 6, 2002, 8:58:37 PM6/6/02
to
Wl 6.1 sp2
Solaris 2.8

We have 50 SLSBs running on non-clustered WL servers. Yet we are seeing
the following ASSERTION FAILED error, which from the stacktrace seems to
hint the ejb stub is doing something cluster-related... I have attached
ejb-jar.xml of the offending bean; someone please verify we are not
building cluster-capable stubs, and if we are building the right stub,
please explain why the exception is happening. Thanks!

******** STACKTRACE

weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Assertion
violated ]
at weblogic.utils.Debug.assert(Debug.java:74)
at weblogic.rmi.cluster.BasicReplicaList.reset(BasicReplicaList.java:175)
at
weblogic.rmi.cluster.PrimarySecondaryReplicaHandler.setPiggybackResponse(Pri
marySecondaryReplicaHandler.java:94)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.setPiggybackResponse(ReplicaAware
RemoteRef.java:294)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
:265)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
:229)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy14.getStatus(Unknown Source)
at
com.go2.dtc.service.AccountStatus.accountIsOnline(AccountStatus.java:57)


******* EJB-JAR.XML

<?xml version="1.0"?>

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise
JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>

<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<home>com.go2.ejb.services.accountservice.AccountServiceHome</home>
<remote>com.go2.ejb.services.accountservice.AccountService</remote>

<ejb-class>com.go2.ejb.services.accountservice.AccountServiceBean</ejb-class
>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>getStatus</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>changeSearchListingStatus</method-name>
<method-params>
<method-param>int</method-param>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>RequiresNew</trans-attribute>
</container-transaction>
</assembly-descriptor>
<?xml version="1.0"?>

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise
JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>

<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<home>com.go2.ejb.services.accountservice.AccountServiceHome</home>
<remote>com.go2.ejb.services.accountservice.AccountService</remote>

<ejb-class>com.go2.ejb.services.accountservice.AccountServiceBean</ejb-class
>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>getStatus</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>changeSearchListingStatus</method-name>
<method-params>
<method-param>int</method-param>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>RequiresNew</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>

Rob Woollen

unread,
Jun 6, 2002, 9:15:09 PM6/6/02
to
It looks like AccountStatus is calling a stateful session bean that uses
in-memory replication. (The PrimarySecondary stub is only used for in-memory
replicated sfsb.)

Do you have any sfsb?

-- Rob

Rajesh Mirchandani

unread,
Jun 7, 2002, 12:03:04 PM6/7/02
to
Gene,

Can this be reproduced at will ?


Rob Woollen wrote:

--
Rajesh Mirchandani
Developer Relations Engineer
BEA Support


Gene Chuang

unread,
Jun 7, 2002, 12:47:26 PM6/7/02
to
Hi Rajesh,

Unfortunately, along with other ASSERTION FAILED bugs I've seen before, this
one cannot be reproduced at will.

Gene
"Rajesh Mirchandani" <Re...@ToNewsgroup.Only> wrote in message
news:3D00D938...@ToNewsgroup.Only...

Gene Chuang

unread,
Jun 7, 2002, 12:45:21 PM6/7/02
to
Hi Rob,

AccountStatus is calling AccountService, which is a SLSB. I have attached
its ejb-jar.xml in my original post, and here's the corresponding
weblogic-ejb-jar.xml:

!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 6.0.0
EJB//EN' 'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>


<!-- Generated XML! -->

<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<stateless-session-descriptor>
<pool>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
</pool>

<stateless-clustering>
<stateless-bean-is-clusterable>False</stateless-bean-is-clusterable>

<stateless-bean-methods-are-idempotent>False</stateless-bean-methods-are-ide
mpotent>
</stateless-clustering>

</stateless-session-descriptor>

<transaction-descriptor>
<trans-timeout-seconds>300</trans-timeout-seconds>
</transaction-descriptor>

<jndi-name>accountservice.AccountServiceHome</jndi-name>
</weblogic-enterprise-bean>
<transaction-isolation>
<isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>


<method>
<ejb-name>accountservice.AccountServiceHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>

</transaction-isolation>
</weblogic-ejb-jar>


"Rob Woollen" <r...@nomail.com> wrote in message
news:3D00091D...@nomail.com...

Rajesh Mirchandani

unread,
Jun 7, 2002, 1:37:05 PM6/7/02
to
The reason I asked you if it is readily reproducable is because I had seen this
issue (support case) in WLS 6.1(no sp). The problem there was that it could not
be reproduced again and so I did not analyze it further.

Is this happening under load ?

Gene Chuang wrote:

--

Gene Chuang

unread,
Jun 11, 2002, 2:07:47 PM6/11/02
to
Hi Rajesh,

This error was reported on our QA system error log, and only occurred a
couple of times in a very specific time frame. I will ask QA again if it
has happened since the first report.

However, even if this bug is minor and not production-worthy, what I am more
concerned about is the fact that the stacktrace seem to indicate the bug is
cluster-related, when we set our SLSBs to be non-clustered. Can someone
please confirm, given the ejb-jar.xml and weblogic-ejb-jar.xml I've posted
below, that I have properly configured and deployed our beans to be
non-clustered? I don't want to introduce cluster overhead (and cluster
bugs) when we don't need to!

Gene
"Rajesh Mirchandani" <Re...@ToNewsgroup.Only> wrote in message

news:3D00EF41...@ToNewsgroup.Only...

0 new messages