[JBoss JIRA] Created: (JBCLUSTER-180) Calling getters/setters cluster wide - covenience feature
by Galder Zamarreno (JIRA)
Calling getters/setters cluster wide - covenience feature
---------------------------------------------------------
Key: JBCLUSTER-180
URL: http://jira.jboss.com/jira/browse/JBCLUSTER-180
Project: JBoss Clustering
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Reporter: Galder Zamarreno
Assigned To: Brian Stansberry
Priority: Optional
We'd like to check the values of an attirbute on all cluster nodes. Is there any quick way to do so?
During the startup of your own JMX MBean service you first have to register it with HAPartition
using registerRPCHandler method in HAPartition [1]. Provide a service name and your own
MBean object as parameters.
When checking a value of an attribute of your mbean in the whole cluster you would invoke
HAPartition.callMethodOnCluster together with service name parameter provided for
registerRPCHandler method. You have to expose this attribute as an operation
However, it would be more convenient to just use getter or setter. thanks,
--
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
17 years, 5 months
[JBoss JIRA] Created: (JBAS-4630) Coordinate optimized entity/XPC replication across web and ejb3 tiers
by Brian Stansberry (JIRA)
Coordinate optimized entity/XPC replication across web and ejb3 tiers
---------------------------------------------------------------------
Key: JBAS-4630
URL: http://jira.jboss.com/jira/browse/JBAS-4630
Project: JBoss Application Server
Issue Type: Sub-task
Security Level: Public (Everyone can see)
Components: Clustering, EJB3, Web (Tomcat) service
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
See EJBTHREE-1039 and JBAS-4629 for background.
For use cases that involve requests that store entities and XPCs in both the web and ejb3 tiers, need to ensure that the process is properly handled.
At minimum, need to ensure that the XPC is always deserialized before any managed entities, no matter what the access pattern is.
It would also be nice to avoid duplicate serialization of the XPC.
--
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
17 years, 5 months
[JBoss JIRA] Created: (JBAS-4629) Optimized replication of entities and extended persistence context in HttpSessions
by Brian Stansberry (JIRA)
Optimized replication of entities and extended persistence context in HttpSessions
----------------------------------------------------------------------------------
Key: JBAS-4629
URL: http://jira.jboss.com/jira/browse/JBAS-4629
Project: JBoss Application Server
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Clustering, Web (Tomcat) service
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Optimize replication of clustered web sessions that hold refs to managed entities and extended persistence contexts, while still ensuring that object identity is maintained between refs to an entity held as a session attribute and those held by the replicated EntityManager.
Currently object identity is maintained by serializing the entire session as one operation (and thus only works reliably if SESSION granularity is used). The entire EM is serialized, including entities that have been flushed to the db. This is inefficient, since the replication is only done to support failover and in the case of node failover, the flushed entities can be restored from the db or the EM's 2nd level cache.
Intent is to:
1) Use JBoss serialization in order to have the ability to alter the serialized form of entities and XPCs.
1) Have Hibernate's EM impl expose getUnflushedChanges()/setUnflushedChanges() methods to support replication of only the unflushed changes held in the XPC, rather than all data.
2) When writing the attributes in the session, check if the object is a managed entity; if so write it's id to the stream rather than the whole object.
3) Deserialization process needs to ensure that any EntityManager is deserialized before the managed entities.
4) Deserialization of a managed entity would involve reading the id from the stream, identifying the EntityManager and doing a find().
5) Sessions should be lazy-deserialized (i.e. only deserialize if needed to handle failover). This is the way web session clustering already works. This is critical, otherwise the cost of the find() operations would likely outweigh the benefits of reducing the amount of replicated data.
Additionally, intent is to allow registration with the container of an impl, say, "ManagedPersistenceContextSerializer". If registered, implementation of many of the steps above would be delegated. JBoss Seam would intend to register an implementation.
--
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
17 years, 5 months
[JBoss JIRA] Created: (JBAS-4816) FirstAvailable - access and update of electedTarget is not atomic
by Galder Zamarreno (JIRA)
FirstAvailable - access and update of electedTarget is not atomic
-----------------------------------------------------------------
Key: JBAS-4816
URL: http://jira.jboss.com/jira/browse/JBAS-4816
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Clustering
Affects Versions: JBossAS-4.2.1.GA, JBossAS-5.0.0.Beta2
Reporter: Galder Zamarreno
Assigned To: Galder Zamarreno
Priority: Trivial
Looking at FirstAvailable load balance policy, electedTarget access/update is not synchronised,
however, the chances of having some issues are very small. First, the proxy needs to be shared
by various threads before the electedTarget has been set, but as electedTarget already elected
randomly, the secondary effects of this lack of safety are none.
--
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
17 years, 5 months
[JBoss JIRA] Created: (JBXB-114) Reusing a model group
by Scott M Stark (JIRA)
Reusing a model group
---------------------
Key: JBXB-114
URL: http://jira.jboss.com/jira/browse/JBXB-114
Project: JBoss XML Binding (JBossXB)
Issue Type: Feature Request
Reporter: Scott M Stark
Fix For: JBossXB-2.0.0.CR5
We have an issue with mapping legacy schemas onto the jboss_5_0.xsd environment model group. The jboss_4_2.dtd specifies elements that are in the environment model group, but there are elements like security-identity interleaved with this:
<!ELEMENT session (ejb-name , jndi-name? , local-jndi-name?, call-by-value?,
exception-on-rollback?, timer-persistence?, configuration-name?, invoker-bindings?,
security-proxy? , ejb-ref* , ejb-local-ref* , service-ref*, security-identity? ,
resource-ref* , resource-env-ref*, message-destination-ref* , clustered? ,
cluster-config?, method-attributes?, depends*,
ior-security-config?, port-component*, ejb-timeout-identity?)>
See the org.jboss.test.metadata.ejb.JBoss42UnitTestCase.testExcludedMethods that parses a conforming jboss_4_2.dtd document, but fails to parse with:
org.jboss.xb.binding.JBossXBException: Failed to parse source: file:/home/svn/JBossHead/projects/metadata/trunk/target/eclipse-classes/org/jboss/test/metadata/ejb/JBoss42_testExcludedMethods.xml@46,34
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:194)
...
Caused by: java.lang.IllegalArgumentException: jndiEnvironmentRefsGroup already set
at org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData.setJndiEnvironmentRefsGroup(JBossEnterpriseBeanMetaData.java:265)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:108)
at org.jboss.beans.info.plugins.AbstractPropertyInfo.set(AbstractPropertyInfo.java:182)
at org.jboss.xb.spi.AbstractBeanAdapter.set(AbstractBeanAdapter.java:95)
at org.jboss.xb.builder.runtime.PropertyHandler.handle(PropertyHandler.java:61)
... 41 more
--
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
17 years, 5 months
[JBoss JIRA] Created: (EJBTHREE-879) Injection metadata in ejb-jar.xml does not override @EJB annotation
by Justin (JIRA)
Injection metadata in ejb-jar.xml does not override @EJB annotation
-------------------------------------------------------------------
Key: EJBTHREE-879
URL: http://jira.jboss.com/jira/browse/EJBTHREE-879
Project: EJB 3.0
Issue Type: Bug
Affects Versions: EJB 3.0 RC9 - Patch 1
Environment: OS-System: Linux 2.6.16.27-0.6-smp,i386
Java VM: Java HotSpot(TM) Server VM 1.6.0-b105,Sun Microsystems Inc.
JBoss [Zion] 4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)
JBoss EJB 3.0 RC9 Patch 1
Reporter: Justin
I have 2 stateless session EJBs, RecipientServiceBean and InjectedServiceBean.
RecipientService exposes a remote interface. InjectedService exposes only a local interface and is injected into the 'injectedService' field of the RecipientServiceBean
--------------------------------------------------- RecipientServiceBean ---------------------------------------------------
@Stateless(name="RecipientServiceBean")
@Remote(RecipientService.class)
public class RecipientServiceBean implements RecipientService {
@EJB(mappedName="overrideinjection/InjectedServiceBean/local")
private InjectedService injectedService;
public String saySomething() {
return "Hello: " + injectedService.getResponse();
}
}
--------------------------------------------------- InjectedServiceBean ---------------------------------------------------
@Stateless(name="InjectedServiceBean")
@Local(InjectedService.class)
public class InjectedServiceBean implements InjectedService {
public String getResponse() {
return "This is the real service";
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------
I now want to override the injection specified by the @EJB annotation to inject a stub service. The stub service and ejb-jar.xml included is as follows
--------------------------------------------------- RecipientServiceStubBean ---------------------------------------------------
public class InjectedServiceStubBean implements InjectedService {
public String getResponse() {
return "THIS IS THE STUB";
}
}
--------------------------------------------------- ejb-jar.xml ---------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
version="3.0">
<enterprise-beans>
<session>
<ejb-name>RecipientServiceBean</ejb-name>
<remote>com.sadalbari.test.overrideinjection.RecipientService</remote>
<ejb-class>com.sadalbari.test.overrideinjection.impl.RecipientServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>ejb/InjectedService</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>com.sadalbari.test.overrideinjection.InjectedService</local>
<ejb-link>InjectedServiceStubBean</ejb-link>
<injection-target>
<injection-target-class>com.sadalbari.test.overrideinjection.impl.RecipientServiceBean</injection-target-class>
<injection-target-name>injectedService</injection-target-name>
</injection-target>
</ejb-local-ref>
</session>
<session>
<ejb-name>InjectedServiceStubBean</ejb-name>
<local>com.sadalbari.test.overrideinjection.InjectedService</local>
<ejb-class>com.sadalbari.test.overrideinjection.impl.InjectedServiceStubBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
---------------------------------------------------------------------------------------------------------------------------------------------------------
A dump of my JNDI view at this point
+- overrideinjection (class: org.jnp.interfaces.NamingContext)
| +- RecipientServiceBean (class: org.jnp.interfaces.NamingContext)
| | +- remote (proxy: $Proxy61 implements interface com.sadalbari.test.overrideinjection.RecipientService,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBObject)
| +- InjectedServiceStubBean (class: org.jnp.interfaces.NamingContext)
| | +- local (proxy: $Proxy56 implements interface com.sadalbari.test.overrideinjection.InjectedService,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBLocalObject)
| +- InjectedServiceBean (class: org.jnp.interfaces.NamingContext)
| | +- local (proxy: $Proxy56 implements interface com.sadalbari.test.overrideinjection.InjectedService,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBLocalObject)
---------------------------------------------------------------------------------------------------------------------------------------------------------
The result is that the injection is not overridden and the stub is not used in preference to the 'real service':
Hello: This is the real service
I can work around this issue by removing the @EJB annotation and ALWAYS declaring the injection in the ejb-jar.xml in which case I get:
Hello: THIS IS THE STUB
Thanks
Justin
--
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
17 years, 5 months
[JBoss JIRA] Created: (EJBTHREE-1173) EJBs Deployed Before Timer Service Initialized
by Andrew Lee Rubinger (JIRA)
EJBs Deployed Before Timer Service Initialized
----------------------------------------------
Key: EJBTHREE-1173
URL: http://jira.jboss.com/jira/browse/EJBTHREE-1173
Project: EJB 3.0
Issue Type: Bug
Affects Versions: AS 5.0.0.Beta3
Reporter: Andrew Lee Rubinger
Assigned To: Andrew Lee Rubinger
Fix For: HEAD
If the attached simple SLSB is added to the "deploy" directory before startup, the following is thrown:
ERROR [AbstractKernelController] Error installing to Start: name=jboss.j2ee:jar=test-mdb.jar,name=TestSlsb,service=EJB3 state=Create
java.lang.NullPointerException
at org.jboss.ejb.txtimer.EJBTimerServiceImpl.restoreTimers(EJBTimerServiceImpl.java:452)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
--
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
17 years, 5 months