-
1. Re: Logging/monitoring application for BPEL processes
objectiser Mar 15, 2010 8:27 AM (in response to psyhead)Hi John
We don't currently offer a public API to the management capabilities because we are in the process of integrating management capabilities (initially at a console level) across the 'process execution' technologies within JBoss - so this is for RiftSaw, DroolsFlow and jBPM. So it is likely that the next step will then be to provide a Web Service or possibly REST API to this unified management capability.
Best thing would be to create a jira in the RiftSaw project outlining your requirements, and we can then take these into account when building the unified management API.
As a possible interim solution, have you had a look at: http://ode.apache.org/user-guide.html#UserGuide-Eventlisteners
The only difference in RiftSaw is that the property name is called 'bpel.event.listeners', and should be configured in the riftsaw.sar/bpel.properties file.
Regards
Gary
-
2. Re: Logging/monitoring application for BPEL processes
psyhead Mar 16, 2010 5:39 AM (in response to objectiser)Thanks for your reply, Gary.
I found the following sample CustomEventListener, registered it like you said in riftsaw.sar/bpel.properties file (bpel.event.listeners=org.mpathirage.bpel.CustomEventListener) and placed the jar file in the server's classpath (..\server\lib).
After restarting the server and running some BPEL processes i haven´t noticed any new messages. Then I tried to place the jar file into "...\riftsaw.sar\lib" and got the same result.
What am i doing wrong?
package org.mpathirage.bpel.event; import org.apache.ode.bpel.iapi.BpelEventListener; import org.apache.ode.bpel.evt.BpelEvent; import java.util.Properties; public class CustomEventListener implements BpelEventListener { public void onEvent(BpelEvent bpelEvent) { System.out.println("Event Notification: " + bpelEvent.getType().toString() + ", " + bpelEvent.getTimestamp()+ ", " + bpelEvent.toString()); } public void startup(Properties properties) { System.out.println("Custom Event Listner:"+ CustomEventListener.class +" startup!"); } public void shutdown() { System.out.println("Custom Event Listner:"+ CustomEventListener.class +" shutdown!"); } }
-
3. Re: Logging/monitoring application for BPEL processes
objectiser Mar 16, 2010 5:54 AM (in response to psyhead)Hi John
If the bpel.properties entry is (bpel.event.listeners=org.mpathirage.bpel.CustomEventListener) then the class name is missing the 'event' part of the package. It should be: bpel.event.listeners=org.mpathirage.bpel.event.CustomEventListener
The jar should be fine in the riftsaw.sar/lib.
Regards
Gary
-
4. Re: Logging/monitoring application for BPEL processes
psyhead Mar 18, 2010 9:06 AM (in response to objectiser)Thank you Gary,
The evenlistener works fine now and gives a lot of useful information besides the values of variables of BPEL processes, and that’s the main point. Is there a possibility to use ProcessManagement and InstanceManagement interfaces (described in ODE Management API) with RiftSaw? I need it for debugging and can’t wait until this feature will be implemented in newer RiftSaw releases. So I have to implement it myself… =)
Regards
John
-
5. Re: Logging/monitoring application for BPEL processes
objectiser Mar 18, 2010 11:22 AM (in response to psyhead)Hi John
Currently its not possible to get access to these APIs, due to the intended longer term strategy - so we don't want to be having to support an ODE specific API in the long term. However I understand your more immediate need.
Best thing is if you could raise a jira asking for access to this API and we will discuss internally if there is a short term solution we could offer until the longer term solution is available.
Regards
Gary
-
6. Re: Logging/monitoring application for BPEL processes
psyhead Mar 19, 2010 10:36 AM (in response to objectiser)Hi Gary,
according to the screenshots from RiftSaw RC2 User Guide, the new BPEL console is already able to show the “Process Instance Data”.
But I get the following warnings when opening the console and “Process Overview” doesn’t work:
WARN [PluginMgr] Unable to load plugin: 'org.jboss.bpm.console.server.plugin.FormDispatcherPlugin'
WARN [PluginMgr] Unable to load plugin: 'org.jboss.bpm.console.server.plugin.GraphViewerPlugin'
INFO [PluginMgr] Successfully loaded plugin 'org.jboss.bpm.console.server.plugin.ProcessEnginePlugin': class org.jboss.soa.bpel.console.ProcessEnginePluginImpl
Do you have any idea why the FormDispatcherPlugin and GraphViewerPlugin are not loading?
Best Regards
John
-
7. Re: Logging/monitoring application for BPEL processes
objectiser Mar 19, 2010 1:09 PM (in response to psyhead)The BPM console is used for jBPM and Drools Flow aswell - I think when used with these projects it makes use of FormDesigner and GraphViewer plugins, but as these are not used in RiftSaw, it just generates a warning.
The BPM console has recently added instance data viewing for RiftSaw - but at the moment there is no programming API to this information.
-
8. Re: Logging/monitoring application for BPEL processes
heiko.braun Mar 19, 2010 1:35 PM (in response to objectiser)Gary is right. These are plugins not used by riftsaw.
-
9. Re: Logging/monitoring application for BPEL processes
psyhead Mar 22, 2010 6:43 AM (in response to heiko.braun)I thought, that these unloaded plugins are the reason why my console doesn’t look like in RiftSaw 2.0-CR2 User Manual. If I choose some process, there is no information available at all. Maybe these screenshots was taken from other project or do I have some problems with my console?
-
10. Re: Logging/monitoring application for BPEL processes
objectiser Mar 22, 2010 7:01 AM (in response to psyhead)Hi John
I don't think there is anything wrong with your configuration. The console only shows 'active' process instances - so one way to see process instances in the console would be to use the 'simple_correlation' quickstart sample, send a 'hello' message to start the process, and then look at the console (or press the refresh button if already running).
Regards
Gary
-
11. Re: Logging/monitoring application for BPEL processes
psyhead Mar 22, 2010 9:15 AM (in response to objectiser)Hi Gary,
I get the following error by selecting that sample process in "Process Overview":
13:55:09,838 INFO [AbstractServer] JBossAS [6.0.0.M1 (build: SVNTag=JBoss_6_0_0_M1 date=200912040958)] Started in 1m:27s:41ms 13:57:12,518 WARN [PluginMgr] Unable to load plugin: 'org.jboss.bpm.console.server.plugin.FormDispatcherPlugin' 13:57:12,529 WARN [PluginMgr] Unable to load plugin: 'org.jboss.bpm.console.server.plugin.GraphViewerPlugin' 13:57:12,548 INFO [PluginMgr] Successfully loaded plugin 'org.jboss.bpm.console.server.plugin.ProcessEnginePlugin': class org.jboss.soa.bpel.console.ProcessEng inePluginImpl 13:58:09,748 INFO [STDOUT] Retrieving document at 'file:/D:/jboss-6.0.0.M1/server/default/tmp/a3k8a-seb1cf-g73a2pkr-1-g73a40bg-b1/Quickstart_bpel_simple_correl ation-1.jar/HelloGoodbye.wsdl'. 13:58:09,836 INFO [WatchDog] [Endpoint files for {DeploymentUnit Quickstart_bpel_simple_correlation-1.jar}] updated 13:59:36,118 ERROR [BpelManagementFacadeImpl] Exception while listing instances java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer at org.apache.ode.daohib.bpel.ProcessInstanceDaoImpl.getEventsFirstLastCount(ProcessInstanceDaoImpl.java:433) at org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl.fillInstanceInfo(ProcessAndInstanceManagementImpl.java:925) at org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl.access$000(ProcessAndInstanceManagementImpl.java:140) at org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl$1.run(ProcessAndInstanceManagementImpl.java:296) at org.apache.ode.bpel.engine.BpelDatabase$1.call(BpelDatabase.java:76) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:218) at org.apache.ode.bpel.engine.BpelDatabase.exec(BpelDatabase.java:74) at org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl.listInstances(ProcessAndInstanceManagementImpl.java:292) at org.jboss.soa.bpel.console.ProcessMgmtImpl.getProcessInstances(ProcessMgmtImpl.java:87) at org.jboss.bpm.console.server.ProcessMgmtFacade.getInstancesJSON(ProcessMgmtFacade.java:173) 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:597) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117) at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260) at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232) at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166) at org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68) 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.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 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:183) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) 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) 13:59:36,283 ERROR [[Resteasy]] Servlet.service() for servlet Resteasy threw exception org.jboss.resteasy.spi.UnhandledException: org.apache.ode.bpel.pmapi.ProcessingException: Exception while listing instances: java.lang.ClassCastException: java. lang.Long cannot be cast to java.lang.Integer at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) at org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230) at org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68) 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.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 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:183) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) 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) Caused by: org.apache.ode.bpel.pmapi.ProcessingException: Exception while listing instances: java.lang.ClassCastException: java.lang.Long cannot be cast to java .lang.Integer at org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl.listInstances(ProcessAndInstanceManagementImpl.java:303) at org.jboss.soa.bpel.console.ProcessMgmtImpl.getProcessInstances(ProcessMgmtImpl.java:87) at org.jboss.bpm.console.server.ProcessMgmtFacade.getInstancesJSON(ProcessMgmtFacade.java:173) 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:597) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117) at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260) at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232) at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166) at org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) ... 28 more
Regards
John
-
12. Re: Logging/monitoring application for BPEL processes
objectiser Mar 22, 2010 9:21 AM (in response to psyhead)Hi John
Could you raise a jira outlining your environment and versions, and also what steps are required to reproduce the problem.
Thanks
Gary
-
13. Re: Logging/monitoring application for BPEL processes
psyhead Mar 26, 2010 12:24 PM (in response to objectiser)Everyone who needs this feature please vote here: https://jira.jboss.org/jira/browse/RIFTSAW-191
Thanks
John
-
14. Re: Logging/monitoring application for BPEL processes
christy Oct 12, 2010 10:00 AM (in response to psyhead)Hi!
I am using Riftsaw 2.1.0 Filnal and I want to use :
package bpel.handlers.event;
import javax.naming.*;
import javax.jws.WebService;
import javax.jws.WebMethod;
import org.apache.ode.bpel.pmapi.ProcessInfoListDocument;
import java.util.List;@WebService
public class MeinJndiContext {
@WebMethod
public String getCtx() {
String res = "";
InitialContext ctx = null;
try {
ctx = new InitialContext();// BpelManagementFacadeImpl bpelMmgtFacade = (BpelManagementFacadeImpl) ctx.lookup("bpel/PMAPI");
Object bpelMmgtFacade = ctx.lookup("bpel/PMAPI");
org.apache.ode.bpel.engine.BpelManagementFacadeImpl facade = (org.apache.ode.bpel.engine.BpelManagementFacadeImpl) bpelMmgtFacade;System.out.println("bpelMmgtFacade.getClass() = " + bpelMmgtFacade.getClass());
ProcessInfoListDocument BPEL_LIST = facade.listAllProcesses();
List processes = BPEL_LIST.getProcessInfoList().getProcessInfoList();
if (processes != null && processes.size() > 0) {
for (int i = 0; i < processes.size(); i++) {
Object o = processes.get(i);
System.out.println("o.getClass() = " + o.getClass());}
}
ctx.close();
} catch (NamingException e) {
}
return res;
}
}But I have strange error:
java.lang.ClassCastException: org.apache.ode.bpel.engine.BpelManagementFacadeImpl cannot be cast to org.apache.ode.bpel.engine.BpelManagementFacadeImpl
at bpel.handlers.event.MeinJndiContext.getCtx(MeinJndiContext.java:24)Any suggestions?
Many thanks,
Kristina