Fujitsu Computer Systems Corporation
Support Newsletter 16.0
Welcome to the sixteenth edition of Fujitsu Computer Systems Corporation’s quarterly Technical Support Newsletter, covering the Interstage suite of products. This newsletter is aimed to update our existing customers, as well as our Fujitsu affiliates and business partners, on issues of interest to the technical support community. This edition continues the broadening of our focus from the Interstage Business Process Manager, to the entire Interstage Suite, and is organized into the following three sections:
1. Product News :
Summary: BPM 2006 in Mainz Germany
Throw Out the Diagram?
Fujitsu Interstage Business Process Manager-A Strong Performer
Bridging The Gap Between Business & IT With SOA-Enabled BPM
SOA, CentraSite™ and Legacy Modernization
2. Tech Section – Support Tips, Answers, and Technical Articles
3. Customer Feedback Survey
I hope you find this issue of our Support Newsletter to be a valuable and informative
Tool, as you continue to use Fujitsu’s Interstage Suite as a key component in your business operations.
Sandia Yang
Senior Manager, Customer Support
Fujitsu Computer Systems Corporation
Nov 22nd, 2006
Requests For Additional Information
For additional information on the Fujitsu Interstage Suite, please contact your regional representative at Fujitsu Computer Systems Corporation or email us at info@interstage.com. In addition, North American customers can request information via a toll-free line at (888) 248-9273
----------------------------------------------------------------------------------------
Upcoming Interstage Business Process Manager Training Sessions:
Fujitsu Computer Systems Corporation conducts an Interstage Business Process Manager API Level Training Class every month at their corporate headquarters located in Sunnyvale, CA. The schedule for training sessions for customers in North America is listed below. Please contact your regional sales representative for enrollment details.
Course Dates:
2006 |
Dates |
Days |
Times |
December |
5, 6, 7 |
Tuesday - Thursday |
10:00 am - 4:00 pm, Daily |
The other Interstage Business Process Manager courses that are available and that are scheduled based on demand include:
If you would like to unsubscribe from this newsletter, or would like to provide Fujitsu with feedback, please e-mail me at:
Vivek Chandran
The Support Group
Fujitsu Computer Systems Corporation
Nov 22nd, 2006
By Keith Swenson, Chief Architect and VP of R&D
WfMC held the latest meeting in MainzGermany, which is near Frankfurt, on Sept 26-28 concurrently with the Business Process Management 2006 conference.
On Sept 29, WfMC held BPM Standards Tutorial Day where a number of key coalition members presented details on WfMC and other standards relevant to BPM. This is a relatively expensive event (€1295), so the audience expects a small environment with ready access to the presenters.
I must say that I am pleased that all of the people who volunteered to create content for this event successfully delivered excellent presentations. It happens so often with volunteer organizations that people flake out, but certainly not this time, and I believe this is a sign of vitality of WfMC and the value that these members see in helping to spread information about the WfMC work.
Tom Baeyens who heads up the JBoss jBPM initiative attended the tutorial day, and it was a pleasure and an honor to meet him in person. He wrote up a nice summary, of the event, on his blog. He accurately points out that WfMC needs to do better in public relations (I would have sayed HYPE) than contenders such as BPEL. So true. But at least WfMC has maintained credibility over the long haul.
WfMC now has a new executive director: Nathaniel Palmer. Founder and President at Transformation+Innovation, and a long time analyst in the BPM space. He has some great new ideas for increasing the effectiveness of the coalition at getting the message out. Of course, it would be hard to completely replace the excellent service that Layna Fisher was bringing to the coalition for the past 5 years, we were glad to hear that Layna will continue to organize and run the Workflow Handbook part of the WfMC.
This day also represent a trial run for a series of tutorial days planned end of October beginning November in three cities inAsia. Information is now becoming available for this:
Oct 30, Tokyo:
http://www.gmacjapan.com/bpm/
Nov 1, Taipei:
http://www.flowring.com/pagelogic/en_index.jsp?pl=in000000000000en
Nov 3, Singapore:
http://www.bizmann.com/wfmc_fareast_tour.htm
By Keith Swenson, Chief Architect and VP of R&D
I ran a "Round Table" at the BPM ThinkTank on the subject of BPMN and XPDL. There always is the question: "Why not use BPEL?". Then I explain how XPDL holds the graphical layout, the X & Y coordinates, the size the nodes, the paths of the lines. BPEL has not support for the graphical layout.
"But you don't need to save the graphical layout!"
This emphatic comment came from one attendee. I truly appreciate the sincerity of the statement, while at the same time it unsettled me. After all, I had just explained that the advantage of XPDL is that you can exchange progress diagrams, and here he was saying there is no need for that. This is not the first nor the last time I will hear this.
"Need" is directly related to your expectation of "use". Many people approach business processes with the mind set that the process diagram is just the starting point, and this will be converted to a set of instructions that will coordinate information flows. This is very much like the role that UML takes in traditional 3GL programming: you start with a diagram, you flesh it out, you eventually switch to filling in the code, you then end up with executable code. With the UML style MDA, you don't need the original diagram in order to execute the final program.
It is my impression that many people believe that BPM is just an extension of this kind of programming style. The diagram is just the initial phase. Then that diagram is converted to executable code (in many cases BPEL) and then shipped to the execution engine. During the transform, the process is reduced to a set of low level instructions. Look at what the basic instructions in BPEL can do: send XML to some server, read XML from some server, transform XML. Once you have reduced the process to this level, why would anyone need to "see" the process execute? An opaque server is fine, as long as it responds correctly to all the incoming events, and sends out the proper responses. This is the approach promoted by Microsoft, IBM, Oracle, and SAP. This is a traditional "Enterprise Application Integration" approach. And for the EAI worldview, it is true: you don't need to save the process diagram layout details.
Many readers will basically agree with the above, but many will vehemently disagree. There is a large community of people who believe that BPM can be something that is fundamentally different from traditional programming. I have mentioned in other posts the difficulty of naming this. Let's call it "human oriented BPM" or "workflow oriented BPM" for now.
What is different about Human Oriented BPM?
In Human Oriented BPM, the diagram matters. People are doing the tasks, and people are not like services which simply take a set of input parameters and transform them to output values. People need to understand the purpose of the work, and a little bit about what others are going to do both before and after their task. The diagram is designed as something that can represent the responsibilities of different people at different points. This diagram helps people to coordinate what they are doing with what the others do. The diagram is not simple a convenient first step in producing a program. Instead, it is an essential part of the final application.
With Human Oriented BPM, the human action retains its identity throughout enactment of the process. Say you have a business process instance which has not completed yet. With human oriented BPM you can ask at any time the question: Why is this process not completed, and who is "holding the ball"?
Human BPMS supports change. Since processes often take a long time (e.g. 3 to 9 months or more) a Human Oriented BPMS needs to answer "who is holding the ball" not just because people are curious, but because the responsibilities that people hold may change over the time span of the process. You might find that the person holding the ball is no longer in that organization.
A Human BPMS must have the ability to reassign that task to a new person, which means that the system must not lose the identity of the task. For example, an EAI oriented BPMS might take a human level task, and break it into a sequence of data level operations; such as update an account, send an email, mark a tracking record. Reassignment can mean undoing all the small steps that are associated with the "task", and redoing them for the new person. This is not impossible in an EAI Oriented BPMS; I am just pointing out that the identity of a task must be maintained.
A Human BPMS must be able to identify performance of the human level tasks within the process. Even if the human task is broken into a set of lower level operations, the detail of the performance of the operations is "noise" that detracts from the performance of the human activities. If a particular department is responsible for reviewing contracts, a business user wants to know statistics about how quickly those reviews are completed, and not necessarily how well their document management system transfers the documents. Somehow, even in the analytics, the human activities must not lose their identity.
This does not completely distinguish a Human BPMS from an EAI BPMS, so I will have to come back to this in a future article.
I hope at least that this makes it clear that that a key aspect of a Human BPM is that the process diagram is a diagram of the responsibilities of different people, and that the human level task maintains its identity throughout the enactment of the process. In a human BPMS, we don't simply throw out the diagram and replace it with the equivalent set of low level operations, but the diagram itself is a fundamental part of the application.
By Amita Abraham, Product Marketing Manager
Fujitsu was ranked by Forrester as a “strong performer” from amongst 9 vendors selected for the evaluation in the Insurance-related BPMS market. Highlights of the report are cited in the press release below.
Fujitsu Interstage Business Process Manager Cited As a Solid BPMS for Insurance by Independent Research Firm
Interstage Business Process Manager cited for its long track record in human-centric BPMS throughout theUS, Europe, andAsia
SUNNYVALE , Calif. , October 3, 2006—Fujitsu Computer Systems Corporation today announced that Fujitsu was among the select companies Forrester invited to participate in its Q3 2006, Forrester Wave report, Human-Centric BPMS For Insurance. In the evaluation, Fujitsu was cited as a “strong performer.” Citing an “unsurpassed commitment to BPMS standards” by Fujitsu, the report notes that “Fujitsu continues to deliver a solid process engine at an attractive price.”
Forrester evaluated Fujitsu Interstage Business Process Manager and the company’s strategy for human-centric Business Process Management Systems (BPMS) for insurance against 215 criteria. The report notes that “Interstage BPM supports all the key standards — BPEL, BPMN, WebDAV, WfXML, and XPDL — which are important for both insurance and the horizontal BPMS market.” It also points out that “Interstage BPM has strong monitoring and change management features”.
According to the report, “the product is an especially good fit for carriers” that want a vendor with global reach, work with systems integrators targeting the insurance market, seek insurance-specific templates and process models, and require insurance-domain expertise and professional services from the BPMS vendor. Noting that Fujitsu has been a BPMS vendor for more than 14 years, the report states, “Fujitsu has a long track record in human-centric BPMS throughout theUS, Europe, andAsia. This allows Fujitsu to support large multinationals with operations throughout the world.”
“The inclusion of Interstage Business Process Manager in the Forrester Wave, Human-Centric BPMS For Insurance report underscores the strong global position that Fujitsu has taken in the BPMS market” said Robert Sepanloo, senior vice president of the Enterprise Software Group at Fujitsu Computer Systems Corporation. “Together with our Fujitsu consulting and services groups, and our consulting partners, we offer a comprehensive solution that meets the enterprise need for flexible, high-performance, standards-based BPM.”
About Fujitsu Computer Systems Corporation
Headquartered in Sunnyvale, Calif., Fujitsu Computer Systems Corporation is a wholly owned subsidiary of Fujitsu Limited (TSE:6702) committed to the design, development and delivery of advanced computer systems, application infrastructure software products, and managed services for the business enterprise. Through its TRIOLE strategy, the company offers a complete line of scalable and reliable servers, storage and middleware solutions, high-performance mobile and client computers, as well as professional services. Fujitsu Computer Systems has established itself as a strategic solutions provider to the world’s leading organizations by offering technology innovation, customer choice, exceptional product quality and reliability, as well as outstanding customer service. See http://us.fujitsu.com/computers for further information.
About Fujitsu
Fujitsu is a leading provider of customer-focused IT and communications solutions for the global marketplace. Pace-setting device technologies, highly reliable computing and communications products, and a worldwide corps of systems and services experts uniquely position Fujitsu to deliver comprehensive solutions that open up infinite possibilities for its customers' success. Headquartered in Tokyo, Fujitsu Limited (TSE:6702) reported consolidated revenues of about 4.8 trillion yen (US$40.6 billion) for the fiscal year ended March 31, 2006. See www.fujitsu.com for further information.
The release can be found at: http://www.computers.us.fujitsu.com/www/news.shtml?aboutus/pressreleases/pr_100306
By Amita Abraham, Product Marketing Manager
This issue of “Bridging the Gap” focuses on a topic that is top-of-mind for most enterprises - Business Process Management (BPM) and Service-Oriented Architecture (SOA). Questions abound on the subject - What do BPM and SOA mean? Are they two different paradigms or do they converge at some point? How does one get started on such an initiative? Are there tangible benefits from them? In this article, attempts are made to outline Fujitsu’s thoughts on this subject.
BPM & SOA – The “Why” And The “How”
At Fujitsu, we believe that BPM and SOA are joined at the hip. Let’s take the example of a large financial institution that wanted to automate the process of opening brokerage accounts and reduce the error rates resulting from manually processing these accounts. We’ve just described Business Process Management – it’s the “why” that drove this financial services heavy-weight to invest in a BPM solution. How do you implement a BPM solution so that you can flexibly access a myriad of back-end systems within and outside the organization to support this process? This “how” to implement is what we believe SOA is all about. SOA translates to creating standards-based reusable components that benefit multiple applications across the organization
SOA Governance & Management - The “Glue”
As the number of reusable components begin to mushroom, the ability to monitor and manage their creation and use becomes critical. Enter the need for SOA Governance & Management solutions. These offering serve as a store for all the reusable components created within the organization – the benefit lies in being able to easily search for and reuse them and understand the impact on other applications should you decide to make changes to any of them.
Collaboration Between Business & IT Made Simple
Business analysts know their processes. And IT professionals know their systems and infrastructure. The challenge is for business to transform their vision into processes that can be deployed by IT while leveraging the existing systems and infrastructure and reducing rework. At Fujitsu, we believe that you should always start with what you have—existing stores of information—and make them accessible to all stakeholders. A combination of BPM and an Enterprise Service Bus helps you do just that. Together with a SOA Governance & Management solution that serves as common ground for both business and IT professionals, you have all the ingredients to ensure seamless collaboration on shared processes, resources, and information through a single interface.
Top-Down Or Bottom-Up? Where Do I Start?
The mandate in most enterprises in recent years has been to consolidate applications and systems and IT organizations have begun to embark on SOA projects to achieve this goal. In situations where processes are only dependent on interactions between back-end applications, a bottom-up approach using an Enterprise Service Bus (ESB) such as the Fujitsu Interstage Service Orchestrator might suffice. However, we understand that business processes do not always consist of only applications that need to be integrated; it also involves the need for people to interact with these applications and collaborate across departments to fulfill the business task at hand. In these cases, a top-down approach is in order using a BPM solution such as the Fujitsu Interstage Business Process Manager. The true benefits of SOA-enabled BPM are achieved when top-down meets bottom-up in the middle with a SOA Governance & Management solution such as CentraSite, which serves as the “glue”.
For more information on the Fujitsu Interstage offerings, visit us at www.fujitsu.com/interstage
By Thomas Gronbach, Product Marketing Manager
SOA Governance with CentraSite
“Governance is the dominant topic in today’s SOA discussions. This discussion involves all aspects of IT and defines how authority can be exercised within IT processes by introducing a system and methodology for managing IT most effectively.
The topic is lead by addressing two major considerations:
Fujitsu Computer Systems, Enterprise Software and Solution Group is greatly positioned to address the technical mechanisms with its SOA Management and Governance solution-CentraSite.
CentraSite is the foundation of the open, standard based SOA coalition “CentraSite Community”, which is formed amongst leading SOA vendors.
For more information on the CentraSite Community visit www.soaworks.com
Legacy Modernization Technology Provider Seagull Software Joins the CentraSite Community
Seagull Software, a leading provider of high-performance software solutions that transform legacy business applications into service-oriented architecture (SOA) assets, announced itself as a strategic sponsor of the CentraSite™ Community, formed to help enterprises successfully design, implement, manage, govern and optimize a SOA.
At the foundation of the community is the CentraSite SOA registry and repository, which stores the different SOA artifacts being created by architects, process modelers and developers. Seagull Software is integrating LegaSuite with CentraSite, and the Community portal provides customers with a single destination for an integrated platform of tools and middleware for SOA CentraSite is built on the fundamental SOA principles of interoperability and reuse. The coalition of sponsoring partners in the CentraSite Community provides enterprise customers with CentraSite-enabled SOA tools. With each member that joins, CentraSite gets enhanced to support more reusable SOA components. The Community, which was founded by Fujitsu and Software AG has 20 sponsors to date.
For more information please visit www.soaworks.com
Interstage Business Process Manager has been available since 1998. Over time, we have received various technical queries from customers, evaluators, partners and affiliates regarding the installation, integration, and usage of Interstage Business Process Manager. In this section we cover some of our frequently asked questions. We hope that this will help answer some of the questions you may have to help release your Interstage Business Process Manager-powered application faster.
How do the ‘users and groups caching’ work in Interstage Business Process Manager?
Q1. How do the ‘users and groups caching’ work in Interstage Business Process Manager, when using LDAP as the directory server?
A1. Users and Groups are cached for the first time when the directory server comes up.
One can specify a parameter called LDAPGroupCacheAgeSec in ibpm.properties or twf.ini (depending on the version of Interstage Business Process Manager server) so that the group cache is refreshed after x seconds, where x is the value of that parameter. By default the value of this parameter is 3600 which means group cache will be refreshed every 3600 seconds (1 hour). So if a new user has been added to a group then during role resolution of that group it will create a workitem for the newly added user to the group-if the cache had already expired; and it also refreshes the group cache.
But if a user is newly added to LDAP and the user attempts to do a login into Interstage Business Process Manager then the user cache will be updated.
In case the user moves from one organizational unit (OU) to another OU the login will fail for that user as the user cache has that user but in an OU that is incorrect. To update the user cache there are 3 options available:
1) Restart Interstage Business Process Manager server for the cache to be updated.
2) Call resetLDAPUsersList() API on WFAdminSession interface to update the user cache. You can also call resetLDAPGroupsList() API on WFAdminSession interface to update the group cache.
3) Try to a dummy login for a user that does not exist so that the user cache is updated again.
Multi-homed Machine Where Interstage Business Process Manager Client Runs
Q2. When our application residing on the WebLogic Application Server (svmplsmoke/10.200.150.210) tries to contact Interstage Business Process Manager Server (svmiflowtest/10.200.200.183) on another remote machine to bring up what work items exist, it can take 30-60 seconds to return. This time seems independent if there are 0 work items returned or 40 returned. We did not experience this in version 5. The following error is in the TWFServer.log. The IP address it is returning is not a valid network IP. This address exists on the host server calling Interstage Business Process Manager Server, but it is not the main IP address. The main IP address is the one used to send to Interstage Business Process Manager Server, so I do not know why it is being used by Interstage Business Process Manager Server to return information. Please advise.
WRN:Thu Aug 17 14:01:33 EDT 2006: TID=9241510: NotificationEventDispatcher : com.fujitsu.iflow.common.exceptions.ServerOperationFailed: Client observer '6290' has apparently logged off, no further notifications will be sent. {Connection refused to host: 192.168.10.10; nested exception is:
java.net.ConnectException: Connection timed out: connect}
A2. The client machine contains two IP addresses. They are 10.200.150.210 that can be reached by the Interstage Business Process Manager server machine and 192.168.10.10 that cannot be reached by the Interstage Business Process Manager server machine.
To make the client JVM bind to 10.200.150.210, use the java option
–Djava.rmi.server.hostname=10.200.150.210. In this case, it will be the JVM where the WebLogic server resides.
Concerning Developing Your Own JSP based Client that Calls Interstage Business Process Manager Model API
Q3. When you develop a JSP based client application that make calls to the Interstage Business Process Manager Model API, you need to be concerned with http session time outs or invalidated http sessions. In such cases, you want to make sure that the related Interstage Business Process Manager session is logged out from Interstage Business Process Manager server. Can you let us know how to do that?
A3. Interstage Business Process Manager provides a utility servlet called “com.fujitsu.iflow.jsp.servlet.BPMHttpSessionBindingListener” that implements javax.servlet.http.HttpSessionBindingListener interface. In particular, the unbound method contains calls to log out the Interstage Business Process Manager session from the server, when the http session expires or the browser is shut down.
You can look up the LoginAction.jsp that is located in {Interstage Business Process Manager Server Installation Directory}\taskmanager\iflowjsp\jsp for reference. The steps are listed below:
Step 1: In the jsp, import="com.fujitsu.iflow.jsp.servlet.BPMHttpSessionBindingListener”
Step 2: Get a reference to com.fujitsu.iflow.model.bpm.BPMSession object. This will login the user to Interstage Business Process Manager server.
Step 3: Add reference of com.fujitsu.iflow.model.bpm.BPMSession as shown below:
BPMHttpSessionBindingListener bindingListener = new BPMHttpSessionBindingListener(bps);
// instantiate bpm http session binding listener. bps is the reference of BPMSession object.
session.setAttribute("BPMSessionListener", bindingListener);
// add listener to session attribute.
With the above code, when a browser is shut down without explicit calls to logout Interstage Business Process Manager session or when the http session expires, the BPMHttpSessionBindingListener will logout the corresponding Interstage Business Process Manager user session upon the invalidated or timeout http session event.
How to Debug Java Action or Agent that is Running on a Remote Interstage Business Process Manager Server JVM?
Description
This article provides basic information required to debug Java Action or Action Agent that is running on a remote JVM. It is intended for integration developer only, who already knows how to create and deploy a simple Java Action or Agent, but needs some advice on troubleshooting. The development tools used in this article are Fujitsu’s Interstage Apworks/Application Server Plus Developer v7.0, a Java-based integration development environment that is based on Eclipse Platform v2.0.1 plus a J2EE runtime environment.
Solution
It is possible to debug a remote Java Action or Agent using the Java Platform Debugger Architecture, which involves the remote JVM and the debugger UI (in this article, we use Interstage Apworks v7.0 that supports JPDA).
The JavaTM Platform Debugger Architecture is structured as follows:
Components Debugger Interfaces
/ |--------------|
/ | VM |
debuggee ----( |--------------| <------- JVMDI - Java VM Debug Interface
\ | back-end |
\ |--------------|
/ |
comm channel -( | <--------------- JDWP - Java Debug Wire Protocol
\ |
|--------------|
| front-end |
|--------------| <------- JDI - Java Debug Interface
| UI |
|--------------|
To debug a remote Java Action or Agent, there are two steps involved.
Step 1 is to configure the remote JVM and step 2 is to configure Interstage Apworks to launch the debugger.
This is explained in detail below.
Step 1: Remote VM Configuration
The Java Action or Agent that we are trying to debug is running on the same JVM where the Interstage Business Process Manager server is running. Thus, we need to set the options on the JVM to turn on remote debug option and the JDPA option.
On the UNIX platform, the Interstage Business Process Manager server JVM is launched from the startall.sh script that is typically found in the {Interstage Business Process Manager HOME}/bin directory. The startall.sh contains several Java application launchers for the adapters and the server.
Since we want to debug the Interstage Business Process Manager Server JVM, we need to set the options on the server JVM only. Below is the sample edited startall.sh:
if [ "$startIF" = 1 ]; then
nohup java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Djava.security.policy=$IFLOWROOT/bin/java.policy \
-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol \
-Djava.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory \
com.fujitsu.iflow.server.impl.ServerBootstrap \
$IFLOWROOT/bin/twf.ini 2>&1 &
echo $! >$IFLOWROOT/bin/iflowsrvr.pid
fi
Figure 1. Edited Java Application Launcher for Interstage Business Process Manager Server contained in Startall.sh
Specifically, the option –Xdebug enables remote debugging. The following option –Xrunjdwp means that when the JVM initializes, it should load the JDWP (Java Debug Wire Protocol) library.
A help menu is available for this option. Simply type java –Xrunjdwp:help at a command-line console in which the JAVA_HOME or PATH environment variable has been pointed to a JRE. Below is the output from the command above:
-Xrunjdwp usage: -Xrunjdwp:[help]|[=, ...]
Option Name and Value Description Default
--------------------- ----------- -------
suspend=y|n wait on startup? y
transport= transport spec none
address= transport spec ""
server=y|n listen for debugger? n
launch= run debugger on event none
onthrow= debug on throw none
onuncaught=y|n debug on any uncaught? n
strict=y|n skip JVMDI bug workarounds? n
stdalloc=y|n Use C Runtime malloc/free? n
Example: java -Xrunjdwp:transport=dt_socket,address=localhost:8000
Figure 2. Output of command -- java –Xrunjdwp:help
Sun also provides a detailed online documentation on JDPA Connection and Invocation at http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.html.
With the preceding VM configuration, this Interstage Business Process Manager Server VM is going to listen on a socket-based connection on port 8000 from the remote debugger (Interstage Apworks).
Step 2: Interstage Apworks Configuration
Create a new java project called “TestJavaAPI” by going to File menu > New > Project > Select “Java Project”.
In this project, create the Java Action program that you want to debug and compile.
Below is the class that I created:
/**
* Created on Jul 19, 2005
*
* To change this generated comment edit the template variable "filecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of file comments go to
* Window>Preferences>Java>Code Generation.
*/
package com.mycompany;
import java.util.logging.*;
public class BasicLogging {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// Get a logger; the logger is automatically created if
// it doesn't already exist
//Logger logger = Logger.getLogger("com.mycompany.BasicLogging");
BasicLogging testLogger = new BasicLogging();
// Log a few message at different severity levels
testLogger.logger.severe("my severe message");
testLogger.logger.warning("my warning message");
testLogger.logger.info("my info message");
testLogger.logger.config("my config message");
testLogger.logger.fine("my fine message");
testLogger.logger.finer("my finer message");
testLogger.logger.finest("my finest message");
testLogger.instanceLog();
String timeStampedString = testLogger.prefixTimeStamp("do you see the prefix timestamp?");
testLogger.logger.info(timeStampedString);
}
public BasicLogging()
{
logger = Logger.getLogger("com.mycompany.BasicLogging");
}
public void instanceLog()
{
// Log a few message at different severity levels
logger.severe("my severe message");
logger.warning("my warning message");
logger.info("my info message");
logger.config("my config message");
logger.fine("my fine message");
logger.finer("my finer message");
logger.finest("my finest message");
}
public String prefixTimeStamp(String message)
{
String timeStampedString = "[" + (new java.util.Date()) + "]\t" + message;
this.logger.info(timeStampedString);
return "[" + (new java.util.Date()) + "]\t" + message;
}
Logger logger = null;
}
Figure 3. Sample code containing Java Action to be debugged
To create a Remote Java Application launch configuration, do the following:
Specific instructions for setting up the remote VM should be obtained from your VM provider or refer to step 1 above.
Following the instructions above, I have configured a remote Java Application launch configuration as shown in the screens below (this configuration window can be open from workbench menu bar Run > Debug…):
Figure 4. Launch Configuration: Connect tab
Figure 5. Launch Configuration: Source tab
Figure 6. Launch Configuration: Common tab
Testing Configurations
Below is a simple prologue Java Action that is to be executed by Interstage Business Process Manager Server within the same JVM:
public String prefixTimeStamp(String message)
{
String timeStampedString = "[" + (new java.util.Date()) + "]\t" + message;
this.logger.info(timeStampedString);
return "[" + (new java.util.Date()) + "]\t" + message;
}
Figure 7. Code Snippet of Sample Java Action
Load this action as a prologue action in simple template that consists of just one activity node. Define two string UDAs. First string is predefined with some string value and will be used as the argument to the preceding prologue action. The return value from the action is to be stored in the second UDA.
Make sure a debugger is launched, as shown below, from Interstage Apworks before starting a new process from this template. Go to Interstage Apworks, select the Debug perspective and go to workbench menu bar Run > Debug. This brings up the window as shown below:
Figure 8. Remote Debugger Launching Window
On the left, select the previously defined configuration under Remote Java Application. Then click on the Debug button to start the remote debugger.
Once connected, you should see the below screen from Interstage Apworks:
Figure 9. Debug perspective after connecting to the remote JVM
Set the break point at each of the three statements contained in the Java Action method as shown in Figure 7 before starting a new process which will invoke this prologue Java Action method. To set break point, simply do Ctrl+Shift+B.
Once a new process is started and the prologue Java Action method is invoked, the particular thread that is executing this method will be suspended at the predefined break point and you can tell from the Debug frame in the upper left corner as shown in Figure 10 below.
Figure 10. The upper left corner Debug frame showing the suspended thread
To resume the suspended thread, simply click on the resume green arrow button in the tool bar of the Debug frame. The thread will be suspended at each of the break points and the current state of the variables can be inspected in the upper right frame as shown in Figure 10 above.
By the time the thread finishes executing the Java Action method, the Interstage Business Process Manager node that includes this prologue Java Action will change its color to green, indicating that it is now in running state. Inspect the UDA values for this process and see if the second UDA now contains some string value with prefixed timestamp.
Conclusion
This article showed how to debug Java Action by configuring the pertinent JVM and Interstage Apworks. However, the same debugging technique is not limited to only Java Action or Agent. It can also be applied to customized adapters. Simply configure the appropriate adapter JVM and load the customized adapter source code to Interstage Apworks. Then you can debug and step through the customized adapter code at runtime.
References:
Interstage Business Process Manager v7.0:
http://www.fujitsu.com/global/services/software/interstage/products/bpm/
Interstage Apworks/Application Server Plus Developer v7.0:
http://www.fujitsu.com/global/services/software/interstage/products/devsuite/
Java Platform Debugger Architecture:
http://java.sun.com/j2se/1.4.2/docs/guide/jpda/architecture.html
JPDA Connection and Invocation Details:
http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.html
Using the remote Java application launch configuration:
http://help.eclipse.org/help30/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/tasks-141.htm
Java™ 2 SDK Documentation:
http://java.sun.com/j2se/1.4.2/docs/index.html
Configuration Information (optional)
Company Name: ________________________________________________
Operating Environment: __________________________________________
Version of Interstage Business Process Manager used: ____________________________________
Production or Test? ______________________________________________