[JBoss JIRA] Created: (JBAS-5102) Crossreferencing EJBs using comp-names does not work
by Christian Nolte (JIRA)
Crossreferencing EJBs using comp-names does not work
----------------------------------------------------
Key: JBAS-5102
URL: http://jira.jboss.com/jira/browse/JBAS-5102
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: EJB3
Affects Versions: JBossAS-4.2.2.GA
Reporter: Christian Nolte
Assigned To: Carlo de Wolf
I have two stateless session beans which are referencing each other like
that:
@Stateless
public class SessionBeanA implements SessionBeanALocal {
@EJB private SessionBeanB sessionB;
}
and
@Stateless
public class SessionBeanB implement SessionBeanBLocal {
@EJB private SessionBeanA sessionA;
}
When deploying the application on JBoss AS I get
--- MBeans waiting for other MBeans ---
ObjectName: jboss.j2ee:jar=test.jar,name=SessionBeanA,service=EJB3
State: NOTYETINSTALLED
I Depend On:
jboss.j2ee:jar=test.jar,name=SessionBeanB,service=EJB3
persistence.units:jar=test.jar,unitName=test.jar
Depends On Me:
jboss.j2ee:jar=test.jar,name=SessionBeanB,service=EJB3
ObjectName: jboss.j2ee:jar=test.jar,name=SessionBeanB,service=EJB3
State: NOTYETINSTALLED
I Depend On:
jboss.j2ee:jar=test.jar,name=SessionBeanA,service=EJB3
Depends On Me:
jboss.j2ee:jar=test.jar,name=SessionBeanA,service=EJB3
and the deployment fails.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JBAS-5197) Add "RetryInterceptor" functionality to all clustered proxies
by Brian Stansberry (JIRA)
Add "RetryInterceptor" functionality to all clustered proxies
-------------------------------------------------------------
Key: JBAS-5197
URL: http://jira.jboss.com/jira/browse/JBAS-5197
Project: JBoss Application Server
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Clustering
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Fix For: JBossAS-5.1.0.CR1
Container issue for ensuring "RetryInterceptor" functionality is added to all clustered proxies.
"RetryInterceptor" functionality consists of adding an interceptor that is able to access the cluster (currently via JNDI) and get an updated set of cluster targets when all current targets have failed. Needed when a complete cluster restart has occurred since the current list of targets was deserialized on the client.
We currently have this for EJB2 proxies; need it for EJB3, HA-JNDI and generic AOP-based and ProxyFactoryHA-based proxies.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JBAS-6144) Resolve intermittent org.jboss.test.cluster.defaultcfg.web.test.ScopedSetAttributeTestCase(Default-udp).testInvalidate failure
by Brian Stansberry (JIRA)
Resolve intermittent org.jboss.test.cluster.defaultcfg.web.test.ScopedSetAttributeTestCase(Default-udp).testInvalidate failure
------------------------------------------------------------------------------------------------------------------------------
Key: JBAS-6144
URL: https://jira.jboss.org/jira/browse/JBAS-6144
Project: JBoss Application Server
Issue Type: Task
Security Level: Public (Everyone can see)
Components: Clustering, Web (Tomcat) service
Reporter: Brian Stansberry
Assignee: Brian Stansberry
Fix For: JBossAS-5.0.1.CR1
This test intermittently fails. The web clustering tests in the default REPL_ASYNC config can occasionally fail due to timing, where the test fails over to the other cluster node before the replicated session arrives. There is a 200 ms delay before failover, but occasional bad luck (e.g. a full gc at wrong time) can make that too short. (Making it longer makes the whole testsuite longer.) But, this issue should cause random failures, whereas this particular test seems to pop up as a failure a high percentage of the time. Need to understand why.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JBAS-5819) Don't call expire when processing remote invalidation of clustered session
by Brian Stansberry (JIRA)
Don't call expire when processing remote invalidation of clustered session
--------------------------------------------------------------------------
Key: JBAS-5819
URL: https://jira.jboss.org/jira/browse/JBAS-5819
Project: JBoss Application Server
Issue Type: Task
Security Level: Public (Everyone can see)
Components: Clustering, Web (Tomcat) service
Reporter: Brian Stansberry
Assignee: Brian Stansberry
Fix For: JBossAS-5.0.0.CR2, JBossAS-4.2.4.GA
When JBC notifies JBossCacheManager that the root node for a session has been invalidated via a remote call, JBMC.processRemoteInvalidation() calls Session.expire on the local session (if there is one). The expire call includes flags that result in no notifications being sent to any listeners.
I don't see any point to this expire call if there are no notifications. The other work expire does is removing content from JBC, but the remote invalidation that triggers all this is already removing that content. Just drop the session from the local session map. Perhaps flag the session so if there is a concurrency/sticky-session problem and a local request thread is handling the session it knows the session is invalid.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JBRULES-1820) Exception: Input stream is not explicitly closed.
by Kris Nuttycombe (JIRA)
Exception: Input stream is not explicitly closed.
-------------------------------------------------
Key: JBRULES-1820
URL: https://jira.jboss.org/jira/browse/JBRULES-1820
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-compiler
Affects Versions: 4.0.7
Environment: Java 6, Linux
Reporter: Kris Nuttycombe
Assignee: Mark Proctor
I am using the Drools PackageBuilder to create business rules from a file. While the rules appear to function correctly, when the JVM which runs the application shuts down, an exception is thrown due to the forced closing of an unclosed stream. It looks from the stack trace like the Drools code is opening a stream using ClassLoader.getResourceAsStream which is then left unclosed and is forced close at JVM shutdown.
On application server shutdown, I receive the following exception. This appears to be the result of an unclosed input stream for a system resource used by the Drools compiler.
[#|2008-10-23T09:55:09.527-0600|WARNING|sun-appserver9.1|javax.enterprise.system.core.classloading|_ThreadID=22;_ThreadName=RMI TCP Connection(1197)-10.97.100.58;_RequestID=341c51d9-08de-4e67-9da1-c57375cb5f35;|Input stream has been finalized or forced closed without being explicitly closed; stream instantiation reported in following stack trace
java.lang.Throwable
at com.sun.enterprise.loader.EJBClassLoader$SentinelInputStream.<init>(EJBClassLoader.java:1169)
at com.sun.enterprise.loader.EJBClassLoader$InternalJarURLConnection.getInputStream(EJBClassLoader.java:1262)
at java.net.URL.openStream(URL.java:1009)
at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1161)
at com.sun.enterprise.loader.EJBClassLoader.getResourceAsStream(EJBClassLoader.java:799)
at org.drools.rule.PackageCompilationData$PackageClassLoader.getResourceAsStream(PackageCompilationData.java:384)
at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.isPackage(EclipseJavaCompiler.java:280)
at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:222)
at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:204)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:97)
at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:43)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveUnresolvedType(BinaryTypeBinding.java:138)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.superclass(BinaryTypeBinding.java:936)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.getExactMethod(BinaryTypeBinding.java:724)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.getExactMethod(BinaryTypeBinding.java:727)
at org.eclipse.jdt.internal.compiler.lookup.Scope.findExactMethod(Scope.java:761)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2002)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:384)
at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve(ReturnStatement.java:220)
at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:432)
at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:190)
at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:403)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1047)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1094)
at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:353)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:596)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:411)
at org.drools.commons.jci.compilers.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:351)
at org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:51)
at org.drools.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:342)
at org.drools.compiler.DialectRegistry.compileAll(DialectRegistry.java:60)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:308)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:167)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (EJBTHREE-1074) Circular @EJB3 references in session beans fail to deploy.
by Gunnar Grim (JIRA)
Circular @EJB3 references in session beans fail to deploy.
----------------------------------------------------------
Key: EJBTHREE-1074
URL: http://jira.jboss.com/jira/browse/EJBTHREE-1074
Project: EJB 3.0
Issue Type: Bug
Affects Versions: AS 4.2.1.GA
Reporter: Gunnar Grim
The following circular references makes the application undeployable:
In ArchiveBrokerBean:
@EJB
private SeriesBrokerLocal itsSeriesBroker;
In SeriesBrokerBean
@EJB
private ArchiveBrokerLocal itsArchiveBroker;
Circular references like these work fine in Glassfish but JBoss shows the following error message:
ObjectName: jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=ArchiveBroker,service=EJB3
State: NOTYETINSTALLED
I Depend On:
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=SeriesBroker,service=EJB3
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=ArchiveTypeBroker,service=EJB3
persistence.units:ear=klara5.ear,jar=klara5.jar,unitName=KlaraPU
Depends On Me:
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=ArchiveOrigBroker,service=EJB3
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=SeriesBroker,service=EJB3
ObjectName: jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=ArchiveOrigBroker,service=EJB3
State: NOTYETINSTALLED
I Depend On:
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=ArchiveBroker,service=EJB3
persistence.units:ear=klara5.ear,jar=klara5.jar,unitName=KlaraPU
ObjectName: jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=SeriesBroker,service=EJB3
State: NOTYETINSTALLED
I Depend On:
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=ArchiveBroker,service=EJB3
persistence.units:ear=klara5.ear,jar=klara5.jar,unitName=KlaraPU
Depends On Me:
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=ArchiveBroker,service=EJB3
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=VolumeBroker,service=EJB3
ObjectName: jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=VolumeBroker,service=EJB3
State: NOTYETINSTALLED
I Depend On:
jboss.j2ee:ear=klara5.ear,jar=klara5.jar,name=SeriesBroker,service=EJB3
persistence.units:ear=klara5.ear,jar=klara5.jar,unitName=KlaraPU
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JGRP-747) RELAY: replication between data centers
by Bela Ban (JIRA)
RELAY: replication between data centers
---------------------------------------
Key: JGRP-747
URL: http://jira.jboss.com/jira/browse/JGRP-747
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.x
[from JGroups/doc/design/DataCenterReplication.txt]
Replication between data centers
================================
Author: Bela Ban
Version: $Id: DataCenterReplication.txt,v 1.6 2008/04/25 15:54:30 belaban Exp $
We have data centers in New York (NYC) and San Francisco (SFO). The idea is to replicate traffic from NYC to SFO
asynchronously. In case of a site failure of NYC, all clients can be switched over to SFO and continue working with
(almost) up-to-date data. The failing over of clients to SFO is outside the scope of this proposal, and could
be done for example by changing DNS entries, load balancers etc.
There is no replication going on from SFO to NYC by default, only when SFO becomes the primary site.
The assumption is that there is no message between data centers which requires a response. This would require
NAT functionlity, which we may provide in a future version.
For the example, we assume that each site uses a UDP based stack, and replication between the sites use a
TCP based stack, see figure DataCenterReplication.png.
There is a local cluster, based on UDP, at each site and one global cluster, based on TCP, which connects the
two sites. Each coordinator of the local cluster is also a member of the global cluster, e.g. member E in NYC
(assuming it is the coordinator) is also member X of the TCP cluster. This is called a *relay* member. A relay
member is always member of the local and global cluster.
A relay member has a UDP stack which additionally contains a protocol RELAY at the top (shown in the bottom part
of the figure). RELAY has a JChannel which connects to the TCP group, but *only* when it is (or becomes) coordinator
of the local cluster. The configuration of the TCP channel is done via a property in RELAY.
Any *multicast* message (we don't relay unicast messages) that is received by RELAY traveling
up the stack is sent via the TCP channel to the other site. When received there, the corresponding RELAY
protocol changes the destination of the message to null (those are multicast messages after all) and leaves
the src (which might point to X if sent from NYC), then it sends the message down the stack, where it will get
multicast to all members of the local cluster (including the sender). When a response is received which
points to any non-local address (e.g. X), RELAY simply drops it.
When forwarding a message to the local cluster, RELAY adds a header. When it receives the multicast message it
forwarded itself, and a header is present, it does *not* relay it back to the other site but simply drops it.
Otherwise, we would have a cycle.
When a coordinator crashes or leaves, the next-in-line becomes coordinator and activates the RELAY protocol,
connecting to the TCP channel and starting to relay messages.
However, if we receive messages from the local cluster while the coordinator has crashed and the new one hasn't taken
over yet, we'd lose messages. Therefore, we need additional functionality in RELAY which buffers the last N messages
(or M bytes, or for T seconds) and numbers all messages sent. This is done by the second-in-line.
When there is a coordinator failover, the new coordinator communicates briefly with the other site to determine
which was the highest message relayed by it. It then forwards buffered messages with lower numbers and removes the
remaining messages in the buffer. During this replay, message relaying is suspended.
Therefore, a relay has to handle 3 types of messages from the global (TCP) cluster:
(1) Regular multicast messages
(2) A message asking for the highest sequence number received from another relay, and the response to this
(3) A message stating that the other side will go down gracefully (no need to replay buffered messages)
Example walkthrough
-------------------
- C (in the NYC cluster, with coordinator E) multicasts a message
- A, B, C, D and E receive the multicast
- D (second-in-line) buffer the message (bounded buffer)
- E is the relay. The byte buffer is extracted and a new message M is created. M's source is C, the dest is null
(= send to all). Note that the original headers are *not* sent with M. If this is needed, we need to revisit.
- X receives M, drops it (because it is the sender, determined by the header).
- Y receives M, adds a RELAY header and sends it down the stack
- T, U, V, W and S receive M and deliver it
- Y does not relay M because M has a header
- Should some member reply (to X), then RELAY at Y will drop the message
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month