[JBoss Web Services] - Crazy performance issue with JBossWS
by Andre Zelenkovas
Andre Zelenkovas [http://community.jboss.org/people/jbonham100] created the discussion
"Crazy performance issue with JBossWS"
To view the discussion, visit: http://community.jboss.org/message/561625#561625
--------------------------------------------------------------
Hi all
I have a bottom-up JAX-WS web service deployed in JBoss. I was running some performance tests at different volumes and I ran into this issue: exactly one hour after the first request, the performance drops dramatically and garbage collection goes off the roof. I took some thread dumps and most HTTP threads are stuck trying to open a class for JBossWSEntityResolver. Our code is not even reached. Has anyone seen anything like it?
Here's the thread dump for one of the threads, they look pretty much the same:
"http-0.0.0.0-8080-149" daemon prio=10 tid=0x0000002b4245b000 nid=0x4e84 runnable [0x000000004958e000]
java.lang.Thread.State: RUNNABLE
at java.util.zip.ZipFile.freeEntry(Native Method)
at java.util.zip.ZipFile.access$800(ZipFile.java:29)
at java.util.zip.ZipFile$2.nextElement(ZipFile.java:330)
- locked <0x0000002a99c1e280> (a java.util.zip.ZipFile)
at java.util.zip.ZipFile$2.nextElement(ZipFile.java:299)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.initEntries(ZipEntryContext.java:491)
- locked <0x0000002a99c1ba90> (a org.jboss.virtual.plugins.context.zip.ZipEntryContext)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:619)
- locked <0x0000002a99c1ba90> (a org.jboss.virtual.plugins.context.zip.ZipEntryContext)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.checkIfModified(ZipEntryContext.java:773)
- locked <0x0000002a99c1ba90> (a org.jboss.virtual.plugins.context.zip.ZipEntryContext)
at org.jboss.virtual.plugins.context.zip.ZipEntryContext.getChild(ZipEntryContext.java:817)
at org.jboss.virtual.plugins.context.zip.ZipEntryHandler.createChildHandler(ZipEntryHandler.java:191)
at org.jboss.virtual.plugins.context.AbstractVirtualFileHandler.structuredFindChild(AbstractVirtualFileHandler.java:684)
at org.jboss.virtual.plugins.context.zip.ZipEntryHandler.getChild(ZipEntryHandler.java:165)
at org.jboss.virtual.plugins.context.DelegatingHandler.getChild(DelegatingHandler.java:107)
at org.jboss.virtual.VirtualFile.findChild(VirtualFile.java:457)
at org.jboss.virtual.plugins.vfs.VirtualFileURLConnection.resolveVirtualFile(VirtualFileURLConnection.java:106)
at org.jboss.virtual.plugins.vfs.VirtualFileURLConnection.getVirtualFile(VirtualFileURLConnection.java:118)
- locked <0x0000002a99c19a98> (a org.jboss.virtual.plugins.vfs.VirtualFileURLConnection)
at org.jboss.virtual.plugins.vfs.VirtualFileURLConnection.getInputStream(VirtualFileURLConnection.java:93)
at java.net.URL.openStream(URL.java:1010)
at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1195)
at org.jboss.ws.core.utils.JBossWSEntityResolver$1.run(JBossWSEntityResolver.java:80)
at org.jboss.ws.core.utils.JBossWSEntityResolver$1.run(JBossWSEntityResolver.java:78)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.ws.core.utils.JBossWSEntityResolver.loadEntitiesMappingFromClasspath(JBossWSEntityResolver.java:76)
at org.jboss.ws.core.utils.JBossWSEntityResolver.<init>(JBossWSEntityResolver.java:59)
at org.jboss.ws.core.utils.JBossWSEntityResolver.<init>(JBossWSEntityResolver.java:51)
at sun.reflect.GeneratedConstructorAccessor180.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at org.jboss.wsf.common.DOMUtils$1.setEntityResolver(DOMUtils.java:121)
at org.jboss.wsf.common.DOMUtils$1.initialValue(DOMUtils.java:101)
at org.jboss.wsf.common.DOMUtils$1.initialValue(DOMUtils.java:110)
at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:141)
at java.lang.ThreadLocal.get(ThreadLocal.java:131)
at org.jboss.wsf.common.DOMUtils.getDocumentBuilder(DOMUtils.java:149)
at org.jboss.wsf.common.DOMUtils.getOwnerDocument(DOMUtils.java:690)
at org.jboss.ws.core.soap.SOAPDocument.<init>(SOAPDocument.java:54)
at org.jboss.ws.core.soap.SOAPPartImpl.<init>(SOAPPartImpl.java:75)
at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:86)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:215)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:455)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Thanks in advance
Andre
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/561625#561625]
Start a new discussion in JBoss Web Services at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 7 months
[jBPM] - HQL activity - parameters with EL evaluated values
by James Baker
James Baker [http://community.jboss.org/people/jimmyb82] created the discussion
"HQL activity - parameters with EL evaluated values"
To view the discussion, visit: http://community.jboss.org/message/561825#561825
--------------------------------------------------------------
Hi,
I've been searching around the documentation, tutorials and forums (for two days) to try to understand how I specify parameters to the HQL activity where the value is defined in the execution context.
I'm using jBPM 4.4 and JBoss EAP 5.0.
I've tried to specify my HQL node in various fashions bearing in mind there is a executionContext var called invoiceId and it is a Long: -
<hql name="Check invoice" g="258,162,117,52" var="invoice" unique="true">
<query>from Invoice i where i.invoiceId = :invoiceId</query>
<parameters>
<string name="invoiceId" value="#{invoiceId}" />
</parameters>
<transition name="Check paid" to="Paid?" g="-62,-4"/>
</hql>
This tries to pass the text as a String with the value "#{invoiceId}"
If i try to do this with a <long /> then it won't even deploy my process.
It seemed like i should use a reference as follows: -
<hql name="Check invoice" g="258,162,117,52" var="invoice" unique="true"> <query>from Invoice i where i.invoiceId = :invoiceId</query> <parameters>
<ref object="invoiceId" />
</parameters>
<transition name="Check paid" to="Paid?" g="-62,-4"/>
</hql>
but this fails because org.jbpm.jpdl.internal.activity.HQLActivity uses the set named parameter methods and there is no way to pass anonymous parameters. It is an anonymous parameter because the ReferenceDescriptor class returns null for getName() and there is no way to specify a name for <ref /> under the http://jbpm.org/4.4/jpdl http://jbpm.org/4.4/jpdl namespace.
According to this feature request https://jira.jboss.org/browse/JBPM-2279 https://jira.jboss.org/browse/JBPM-2279 we should be able to use EL but there is no reference in the documentation as to how.
Can anyone help?
P.S sorry if this comes out badly formatted, it's my first post.
James
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/561825#561825]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 7 months
[Beginner's Corner] - Deployments missing dependencies when publishing to JBoss
by G S
mrfrankblack [http://community.jboss.org/people/mrfrankblack] created the discussion
"Deployments missing dependencies when publishing to JBoss"
To view the discussion, visit: http://community.jboss.org/message/566330#566330
--------------------------------------------------------------
Hi, I'm trying to put an EAR file on the server (EJB+JPA) but it's giving me the following error. I put the MYSQL connector in the deploy folder, since it didn't seem to be recognising the datasource, but no luck...I'm using JBoss 5.1.0 and Eclipse Helios
{code}
17:42:05,537 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
DEPLOYMENTS MISSING DEPENDENCIES:
Deployment "jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3" is missing the following dependencies:
Dependency "<UNKNOWN jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3>" (should be in state "Described", but is actually in state "** UNRESOLVED Demands 'persistence.unit:unitName=ObligEAR.ear/ObligatorioJPA.jar#ObligatorioJPA' **")
Deployment "jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3_endpoint" is missing the following dependencies:
Dependency "jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3" (should be in state "Configured", but is actually in state "PreInstall")
Deployment "persistence.unit:unitName=ObligEAR.ear/ObligatorioJPA.jar#ObligatorioJPA" is missing the following dependencies:
Dependency "jboss.jca:name=mysqlds,service=DataSourceBinding" (should be in state "Create", but is actually in state "** NOT FOUND Depends on 'jboss.jca:name=mysqlds,service=DataSourceBinding' **")
DEPLOYMENTS IN ERROR:
Deployment "<UNKNOWN jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3>" is in error due to the following reason(s): ** UNRESOLVED Demands 'persistence.unit:unitName=ObligEAR.ear/ObligatorioJPA.jar#ObligatorioJPA' **
Deployment "jboss.jca:name=mysqlds,service=DataSourceBinding" is in error due to the following reason(s): ** NOT FOUND Depends on 'jboss.jca:name=mysqlds,service=DataSourceBinding' **
17:42:05,557 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080
17:42:05,624 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
17:42:05,632 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 47s:910ms
17:42:41,244 WARN [SaxJBossXBParser] schema_reference.4: Failed to read schema document ' http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>. @ vfszip:/C:/Users/George/Desktop/jboss-5.1.0.GA/server/default/deploy/ObligEAR.ear/ObligatorioJPA.jar/META-INF/persistence.xml[2,248]
17:42:41,284 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@10738507{vfszip:/C:/Users/George/Desktop/jboss-5.1.0.GA/server/default/deploy/ObligEAR.ear/EJBObli.jar/}
17:42:41,284 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@10738507{vfszip:/C:/Users/George/Desktop/jboss-5.1.0.GA/server/default/deploy/ObligEAR.ear/EJBObli.jar/}
17:42:41,301 INFO [JBossASKernel] Created KernelDeployment for: EJBObli.jar
17:42:41,301 INFO [JBossASKernel] installing bean: jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3
17:42:41,301 INFO [JBossASKernel] with dependencies:
17:42:41,302 INFO [JBossASKernel] and demands:
17:42:41,302 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
17:42:41,302 INFO [JBossASKernel] persistence.unit:unitName=ObligEAR.ear/ObligatorioJPA.jar#ObligatorioJPA
17:42:41,302 INFO [JBossASKernel] and supplies:
17:42:41,302 INFO [JBossASKernel] Class:ejb.ListaContactosRemote
17:42:41,302 INFO [JBossASKernel] jndi:ObligEAR/ListaContactos/remote-ejb.ListaContactosRemote
17:42:41,302 INFO [JBossASKernel] jndi:ObligEAR/ListaContactos/remote
17:42:41,302 INFO [JBossASKernel] Added bean(jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3) to KernelDeployment of: EJBObli.jar
17:42:41,305 INFO [EJB3EndpointDeployer] Deploy AbstractBeanMetaData@10efa29{name=jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3_endpoint bean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl properties=[container] constructor=null autowireCandidate=true}
17:42:41,411 WARN [HDScanner] Failed to process changes
org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
DEPLOYMENTS MISSING DEPENDENCIES:
Deployment "jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3" is missing the following dependencies:
Dependency "<UNKNOWN jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3>" (should be in state "Described", but is actually in state "** UNRESOLVED Demands 'persistence.unit:unitName=ObligEAR.ear/ObligatorioJPA.jar#ObligatorioJPA' **")
Deployment "jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3_endpoint" is missing the following dependencies:
Dependency "jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3" (should be in state "Configured", but is actually in state "PreInstall")
Deployment "persistence.unit:unitName=ObligEAR.ear/ObligatorioJPA.jar#ObligatorioJPA" is missing the following dependencies:
Dependency "jboss.jca:name=mysqlds,service=DataSourceBinding" (should be in state "Create", but is actually in state "** NOT FOUND Depends on 'jboss.jca:name=mysqlds,service=DataSourceBinding' **")
DEPLOYMENTS IN ERROR:
Deployment "<UNKNOWN jboss.j2ee:ear=ObligEAR.ear,jar=EJBObli.jar,name=ListaContactos,service=EJB3>" is in error due to the following reason(s): ** UNRESOLVED Demands 'persistence.unit:unitName=ObligEAR.ear/ObligatorioJPA.jar#ObligatorioJPA' **
Deployment "jboss.jca:name=mysqlds,service=DataSourceBinding" is in error due to the following reason(s): ** NOT FOUND Depends on 'jboss.jca:name=mysqlds,service=DataSourceBinding' **
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:369)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
{code}
and here's the Persistence.xml
{xml}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns=" http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="ObligatorioJPA" transaction-type="JTA">
<jta-data-source>java:mysqlds</jta-data-source>
<class>bean.Contacto</class>
<class>bean.Empleado</class>
<class>bean.Direccion</class>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.use_sql_comments" value="false" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
{xml}
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/566330#566330]
Start a new discussion in Beginner's Corner at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 7 months
[JBoss Web Services] - Re: How can I do mutual SSL when using JBoss as Web service
by Richard Gomes
Richard Gomes [http://community.jboss.org/people/richard.anywhere] created the discussion
"Re: How can I do mutual SSL when using JBoss as Web service"
To view the discussion, visit: http://community.jboss.org/message/570402#570402
--------------------------------------------------------------
As this is high on the Google search results for "jboss WS Client Mutual Certificate" and doesn't have a posted resolution, I thought I'd post what I did to get everything working.
The basic principle here is that BOTH the Web Service (WS) and the Web Service Client (WS-C) need to have the other's key stored as "trusted". Specifically, the following needs to be set ON BOTH SIDES:
-Djavax.net.ssl.trustStore=/home/dev/.truststore
-Djavax.net.ssl.trustStorePassword=changeit
Now, both sides also need their own keystore. The key of WS needs to be trusted by WS-C and vice-versa. Set the following ON BOTH SIDES:
-Djavax.net.ssl.keyStore=/home/dev/.keystore
-Djavax.net.ssl.keyStorePassword=changeit
To get something up and running quickly, use the same keystore and truststore on both sides ... even simpler, you can create a new keystore and simply copy the output file to also become the truststore:
$JAVA_HOME/bin/keytool -genkey -alias jboss -keyalg RSA
cp .keystore .truststore
You can also do an explicit import to load a key into a truststore:
keytool -import -alias jboss -file certificate -storepass changeit -keystore .truststore
This all worked for me. If possible, please provide feedback on gotchas or success stories relating to the above.
All the best,
Richard
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/570402#570402]
Start a new discussion in JBoss Web Services at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
13 years, 9 months