[JBoss JIRA] Created: (JBESB-1369) Bad action breaks ESB
by Martin Vecera (JIRA)
Bad action breaks ESB
---------------------
Key: JBESB-1369
URL: http://jira.jboss.com/jira/browse/JBESB-1369
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Rosetta
Affects Versions: 4.2.1
Environment: server/oracle/deploy/jbossesb.sar/jbossesb-properties.xml in the 'core' section:
<property name="org.jboss.soa.esb.message.default.uri" value="urn:jboss/esb/message/type/JAVA_SERIALIZED"/>
Reporter: Martin Vecera
In one of my tests I sent several messages (text or object - doesn't matter, they both carried String) to Queue/A. There was one service listening on this queue. I tried to use org.jboss.soa.esb.actions.Notifier with target NotifyQueue. This was impossible because my message carried String and the notifier expected byte[]. This caused an exception (see later) and the ESB started to show another warning (connection pool exhausted). I would expect it to return the thread to the pool after this exception. It is 100% reproducible. Just try simple helloworld quickstart with NotifyQueue and ESB set according to 'Environment' field.
The exception (this is expected behavior):
16:28:42,044 INFO [JBoss4ESBDeployer] create esb service, Performance1.esb
16:28:42,069 INFO [QueueService] Queue[/queue/quickstart_helloworld_Request_esb] started, fullSize=200000, pageSize=2000, downCacheSize=2000
16:28:42,077 INFO [QueueService] Queue[/queue/quickstart_helloworld_Request_gw] started, fullSize=200000, pageSize=2000, downCacheSize=2000
16:28:42,259 ERROR [STDERR] Found log4j.properties: jar:file:/home/mvecera/work/jboss-soa-p.4.2.0.IR6/bin/run.jar!/log4j.properties
16:28:42,261 INFO [MessageCounterAction] jbosstest.beancount: null
16:28:42,261 INFO [MessageCounterAction] jbosstest.iterationcount: null
16:28:42,261 INFO [MessageCounterAction] jbosstest.threadcount: null
16:28:42,261 INFO [MessageCounterAction] jbosstest.nodeploy: null
16:28:42,261 INFO [MessageCounterAction] jbosstest.jndiurl: localhost:1099
16:28:42,261 INFO [MessageCounterAction] jbosstest.jndifactory: org.jnp.interfaces.NamingContextFactory
16:28:42,541 INFO [JDBCDataStore] Generated token 'authToken:6F7CA190-9CFD-11DC-AC8B-AA0F09643FB4' for user: 'jbossesb/JBoss ESB User'
16:28:42,667 INFO [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
16:28:54,478 ERROR [STDERR] Test was finished by processing 1 messages in 1 ms
16:28:54,483 INFO [STDOUT] ConsoleNotifier 2007/11/27 04:28:54.483<Hello World>
16:28:54,532 ERROR [NotificationList] Can't instantiate target <target class="NotifyQueues">
<queue jndiName="queue/D"/>
</target>
org.jboss.soa.esb.notification.NotificationException: Expected payload type for 'urn:jboss/esb/message/type/JAVA_SERIALIZED' is byte[]. Recieved 'java.lang.String'.
at org.jboss.soa.esb.notification.NotifyJMS.sendNotification(NotifyJMS.java:276)
at org.jboss.soa.esb.notification.NotificationList.notifyAll(NotificationList.java:164)
at org.jboss.soa.esb.actions.Notifier.notifyOK(Notifier.java:93)
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.soa.esb.listeners.message.ActionProcessorMethodInfo.processSuccess(ActionProcessorMethodInfo.java:154)
at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcessor.processSuccess(OverriddenActionLifecycleProcessor.java:108)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.notifySuccess(ActionProcessingPipeline.java:610)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:384)
at org.jboss.soa.esb.listeners.jca.JcaMessageAwareListener.process(JcaMessageAwareListener.java:156)
at org.jboss.soa.esb.listeners.jca.JcaJMSInflowMessageProcessorAdapter.onMessage(JcaJMSInflowMessageProcessorAdapter.java:44)
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.soa.esb.listeners.jca.BaseJcaInflow$1.invoke(BaseJcaInflow.java:205)
at org.jboss.soa.esb.listeners.jca.EndpointProxy.delivery(EndpointProxy.java:242)
at org.jboss.soa.esb.listeners.jca.EndpointProxy.invoke(EndpointProxy.java:145)
at $Proxy76.onMessage(Unknown Source)
at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:178)
at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:157)
at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:801)
at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java)
at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
at org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:237)
at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
at java.lang.Thread.run(Thread.java:595)
The problem:
16:30:58,740 INFO [STDOUT] ConsoleNotifier 2007/11/27 04:30:58.740<Hello World>
16:30:58,741 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:30:58,766 INFO [STDOUT] ConsoleNotifier 2007/11/27 04:30:58.766<Hello World>
16:30:58,766 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:30:58,770 INFO [STDOUT] ConsoleNotifier 2007/11/27 04:30:58.770<Hello World>
16:30:58,770 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:30:58,807 INFO [STDOUT] ConsoleNotifier 2007/11/27 04:30:58.807<Hello World>
16:30:58,807 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:30:59,741 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:30:59,766 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:30:59,770 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:30:59,808 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:00,741 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:00,767 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:00,770 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:00,808 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:01,741 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:01,767 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:01,770 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:01,808 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:02,741 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
16:31:02,769 INFO [JmsConnectionPool] The connection pool was exhausted. Waiting 1 second before trying again..
Undeploying the service didn't fix the problem.
--
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
16 years, 9 months
[JBoss JIRA] Created: (JBESB-1568) FileGateways are not safe when used with more than one thread
by Jiri Pechanec (JIRA)
FileGateways are not safe when used with more than one thread
-------------------------------------------------------------
Key: JBESB-1568
URL: http://jira.jboss.com/jira/browse/JBESB-1568
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Transports
Affects Versions: 4.2.1 CP1
Reporter: Jiri Pechanec
Assigned To: Kevin Conner
Priority: Critical
Fix For: 4.2.1 CP2
See attached example.
Unzip it in quickstarts dir and do only deploy. The QS will create 200 files in input dir and then will deploy the app. The app will process messages and notifie the console and JMS queue/A.
The problem is that the numebr of processed messages is larger than the number of received.
An example of output
12:03:28,188 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.188<>
12:03:28,191 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.191<Hello World In A File 10>
12:03:28,194 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.194<Hello World In A File 94>
12:03:28,198 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.198<Hello World In A File 37>
12:03:28,201 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.201<Hello World In A File 150>
12:03:28,204 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.204<>
12:03:28,208 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.208<Hello World In A File 19>
12:03:28,211 INFO [STDOUT] ConsoleNotifier 2008/02/29 12:03:28.211<>
The contains this messages
2008-02-29 12:03:28,434 DEBUG [org.jboss.soa.esb.util.FileUtil] Could not open input file for reading
java.io.FileNotFoundException: /home/jpechane/pokus/GAAS/jboss-as/samples/quickstarts/helloworld_perfile_action/build/dirs/input/MyInput132.dat (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.jboss.soa.esb.util.FileUtil.copyFile(FileUtil.java:89)
at org.jboss.soa.esb.util.FileUtil.renameTo(FileUtil.java:63)
at org.jboss.soa.esb.listeners.gateway.FileGatewayListener.renameFile(FileGatewayListener.java:151)
at org.jboss.soa.esb.listeners.gateway.AbstractFileGateway.setFileWorking(AbstractFileGateway.java:257)
at org.jboss.soa.esb.listeners.gateway.AbstractFileGateway.onSchedule(AbstractFileGateway.java:147)
at org.jboss.soa.esb.schedule.ScheduleProvider$ESBScheduledJob.execute(ScheduleProvider.java:217)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
The issue is due to buggy FileUtil class. The expected processing is
1) Find a file with message
2) Copy the file and rename add .processing extension
But if there are more threads then two can process the same file.
The issue is that copying file returns true/false which is ignored in FileUtil.renameTo method. Delete old files also can fail and value is ignored. Thus the empty message is generated and processed by ESB.
The FileGateway and FileUtils should be either revisited or documented as usable with only one trhead over one dir.
--
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
16 years, 9 months
[JBoss JIRA] Created: (JBESB-1599) Investigate inconsistent EPR
by Kevin Conner (JIRA)
Investigate inconsistent EPR
----------------------------
Key: JBESB-1599
URL: http://jira.jboss.com/jira/browse/JBESB-1599
Project: JBoss ESB
Issue Type: Task
Security Level: Public (Everyone can see)
Components: Rosetta
Affects Versions: 4.2.1 CP1
Reporter: Kevin Conner
Fix For: 4.2.1 CP2
A report from Jeff contained an inconsistent EPR.
[java] Exception in thread "main" org.jboss.soa.esb.listeners.message.MessageDeliverException: Failed to deliver message [header: [ To: JMSEpr [ PortReference < <wsa:Address jms://10.10.34.41:1099/queue/gs_request_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://10.10.34.41/queue/gs_request_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='a97aa962-007e-46ea-88f9-688807e43d66'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ]] to Service [gs-request:GSRequestListener]. Check for errors.
The EPR was registered using the hostname esb.gs.redhat.com (IP address 10.10.34.41) and this is reflected in the address element. The internal JNDI information contains 127.0.0.1.
We need to investigate to try and understand how this has occurred.
--
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
16 years, 9 months
[JBoss JIRA] Created: (JBESB-1579) JBESB-Internal/DeadLetterService PersistAction transaction isolation level
by Noel Rocher (JIRA)
JBESB-Internal/DeadLetterService PersistAction transaction isolation level
--------------------------------------------------------------------------
Key: JBESB-1579
URL: http://jira.jboss.com/jira/browse/JBESB-1579
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Message Store
Affects Versions: 4.2.1 CP1
Reporter: Noel Rocher
Priority: Minor
Fix For: 4.2.1 CP2
this action is based on the class "org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl"
where the transaction isolation level is setup to Connection.TRANSACTION_READ_UNCOMMITTED :
Code:
...
public boolean redeliver(URI uuid) throws MessageStoreException
{
boolean isDelivered=false;
boolean error=false;
Connection con = null;
try
{
con = mgr.getConnection();
con.setAutoCommit(false);
con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
...
This is producing only warnings but the exception make the redelivry to fail :
Code:
...
catch (SQLException e)
{
if (logger.isDebugEnabled()) {
logger.debug("Deadlocks may occur under normal processing");
logger.debug(e.getMessage(), e);
}
error=true;
}
...
--
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
16 years, 9 months