[JBoss JIRA] Created: (JBAS-5220) twiddle not displaying info regarding java.lang:* beans when -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl is used .
by Vicky Kak (JIRA)
twiddle not displaying info regarding java.lang:* beans when -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl is used .
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: JBAS-5220
URL: http://jira.jboss.com/jira/browse/JBAS-5220
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JMX
Affects Versions: JBossAS-4.2.0.GA
Reporter: Vicky Kak
Assigned To: Vicky Kak
Starting Jboss with these parameters
./run.sh -Djboss.platform.mbeanserver -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl
causes twiddle not to display java.lang:* MBeans
[vicky@localhost bin]$ ./twiddle.sh query "java.lang:*"
15:02:14,414 ERROR [Twiddle] Command failure
org.jboss.console.twiddle.command.CommandException: No MBean matches for query: java.lang:*
at org.jboss.console.twiddle.command.MBeanServerCommand.queryMBeans(MBeanServerCommand.java:72)
at org.jboss.console.twiddle.command.QueryCommand.execute(QueryCommand.java:138)
at org.jboss.console.twiddle.Twiddle.main(Twiddle.java:305)
If the Jboss is started as
./run.sh -Djboss.platform.mbeanserver
twiddle query "java.lang:*" works .
--
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
15 years, 4 months
[JBoss JIRA] Created: (JBAS-5364) UnifiedInvokerHAProxy can throw NullPointerException under load
by Galder Zamarreno (JIRA)
UnifiedInvokerHAProxy can throw NullPointerException under load
---------------------------------------------------------------
Key: JBAS-5364
URL: http://jira.jboss.com/jira/browse/JBAS-5364
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Clustering
Affects Versions: JBossAS-5.0.0.Beta4, JBossAS-4.2.2.GA
Reporter: Galder Zamarreno
Assigned To: Galder Zamarreno
Under heavy load and sharing an EJB proxy between different threads, there's a
chance of NullPointerException like the one below being reported, specially when
using proxies configured with RoundRobin as load balance policy, such as SLSBs
or EJB2 home proxies:
java.lang.NullPointerException
at org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy.invoke(UnifiedInvokerHAProxy.java:186)
at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:63)
at org.jboss.proxy.ejb.RetryInterceptor.invoke(RetryInterceptor.java:176)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:184)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
at $Proxy1.create(Unknown Source)
Whenever a new target for an invocation is chosen, init(InvokerLocator locator)
method in UnifiedInvokerProxy is executed:
protected void init(InvokerLocator locator)
{
this.locator = locator;
try
{
client = createClient(locator, getSubSystem());
client.connect();
}
catch(Exception e)
{
log.fatal("Could not initialize UnifiedInvokerProxy.", e);
}
}
This method could be executed in paralell to the following in
UnifiedInvokerHAProxy.invoke(Invocation invocation):
Client clientInstance = getClient(invocation);
log.debug("Making invocation on " + clientInstance.getInvoker().getLocator());
When the new client instance is created, the invoker is null until client.connect() is
called, so something like this can happen:
1.- T1 (Thread 1) executes getClient(invocation); and returns client#1
2.- T2 (Thread 2) selects a new target for the invocation and calls init(InvokerLocator locator)
3.- T2 calls createClient() and the instance variable client becomes client#2
4.- T1 now calls clientInstance.getInvoker().getLocator() which is now client#2 but
connect() has not been called on this instance, so results on NPE.
The simplest of all solutions would be to make assignment of client instance thread safe,
something I already did for JBAS-4815 to get around another thread safety issue.
I'm gonna take the tests I created for JBAS-4815 and use them to replicate something like
this and check whether the fix for that fixes this as well.
--
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
15 years, 4 months
[JBoss JIRA] Created: (JBMESSAGING-1131) Add configuration for Remoting servlet transport
by Ron Sigal (JIRA)
Add configuration for Remoting servlet transport
------------------------------------------------
Key: JBMESSAGING-1131
URL: http://jira.jboss.com/jira/browse/JBMESSAGING-1131
Project: JBoss Messaging
Issue Type: Task
Reporter: Ron Sigal
Assigned To: Tim Fox
Fix For: 2.0.0 Alpha
In addition to the "http" transport, Remoting also has the http-based "servlet" transport. The servlet transport is the same as the http transport on the client side (they both use org.jboss.remoting.transport.http.HTTPClientInvokr), but they are different on the server side. In particular, CoyoteInvoker, the http transport server invoker, uses the network layer of tomcat/jbossweb, i.e., a ServerSocket with worker threads. But in the servlet transport, a org.jboss.remoting.transport.servlet.web.ServerInvokerServlet fields invocations and passes them to org.jboss.remoting.transport.servlet.ServletServerInvoker. The advantage, which came up in a forum thread recently (http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4098850#4098850 and http://www.jboss.com/index.html?module=bb&op=viewtopic&t=122218), is that only one ServerSocket is used. In principle, it's the appropriate transport to use when the server is running inside JBossAS. In fact, the wiki page "Accessing_EJB3s_over_HTTP_HTTPS" shows how to change the EJB3 transport from socket to servlet. However, there have been a couple of problems. For one, ServletServerInvoker has been a little behind CoyoteInvoker in its development, though I've been rectifying that (JBREM-675 "Problems with Servlet invoker"). For another, the servlet transport needs tomcat/jbossweb for unit testing, and we've never automated that, so it's not as well tested as CoyoteInvoker (JBREM-139 "need automated test for servlet server invoker"). However, I wanted to verify that JBossMessaging can run with the servlet transport, so I created a servlet example, parallel to the http example, along with the supporting configuration files, and it works.
--
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
15 years, 4 months