New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Stefan Tilkov on Sep 05, 2007
The ODE philosophy on BPEL is that it is a language for describing how to implement a set of message-based communication capabilities in terms of state manipulation and messages exchanged with external services. Other than in this sentence and in the preceding paragraph, the word "business" will not appear, and there will be no talk of alignment with IT or other silliness — ODE is guilt-free (and gilt-free) technology like a web server or a database; what you do with it is up to you. No GUI, IDE, ESB, or other TLA (other than a little XML) is required.Read the full article to find out whether it lives up to Paul's promise.
The url to the article is wrong.
Thanks - fixed.
Any public list of projects using this engine in their solutions?
/Dino
Dino, there's a very early list here:
ode.apache.org/links.html
However from the questions asked on our user and dev mailing lists I can tell you there's quite a few others. We just haven't asked people if we could list their projects there yet.
Hey, good article!
Hi! Nice article.
Looks like the the "close" operation is missing in bindings.
Following should be added after "init" operation.
<wsdl:operation name="close">
<soap:operation soapAction="" style="rpc"/>
<wsdl:input>
<soap:body namespace="http://example.com/bpel/counter" use="literal"/>
</wsdlinput>
<wsdl:output>
<soap:body namespace="http://example.com/bpel/counter" use="literal"/>
</wsdloutput>
</wsdloperation>
Also "while" block for "close" doesn't have <condition> statement, don't know if it is ok, though.
Regards,
Bugger</condition></wsdl:output></wsdl:input></wsdl:operation>
Information on who's using ODE is now under this location: ode.apache.org/resource-services.html
Hello,
I'm testing Restful web services with a simple wsdl.
I followed the document that describes Restful services.
In the bpel designer, there was no syntax errors.
I published it into the ODE container, however I got error messages in the
following.
If I made the wsdl port with HTTP, the endpoint address should be extracted
in a http:address, isn't it?
What should I do if I call Restful web services with ODE?
Please give me your advice.
Thanks in advance.
This is my service definition.
<definitions
....
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
....
><service name="IHelloWorld"> <port name="IHelloWorldPort" binding="tns:IHelloWorldBinding"> <http:address location="http://localhost:9091/openmemes"/> </port> </service>This is the error messages.
========================================================================
DEBUG - GeronimoLog.debug(66) | Process store event: {ProcessStoreEvent#DEPLOYED:{restful.bpel.openmemes.com/}IHelloWorld-2}DEBUG - GeronimoLog.debug(66) | Ignoring store event: {ProcessStoreEvent#DEPLOYED:{restful.bpel.openmemes.com/}IHelloWorld-2}DEBUG - GeronimoLog.debug(66) | Process store event: {ProcessStoreEvent#ACTIVATED:{restful.bpel.openmemes.com/}IHelloWorld-2}DEBUG - GeronimoLog.debug(66) | register: {restful.bpel.openmemes.com/}IHelloWorld-2DEBUG - GeronimoLog.debug(66) | Registering process {restful.bpel.openmemes.com/}IHelloWorld-2 with server.DEBUG - GeronimoLog.debug(66) | Register process: serviceId={restful.bpel.openmemes.com/}IHelloWorld:IHelloWorldPort, process=ODEProcess[{restful.bpel.openmemes.com/}IHelloWorld-2]DEBUG - GeronimoLog.debug(66) | Activating {restful.bpel.openmemes.com/}IHelloWorld-2WARN - GeronimoLog.warn(92) | Deployment failed within the engine, store undeploying process.DEBUG - GeronimoLog.debug(66) | Process store event: {ProcessStoreEvent#UNDEPLOYED:{restful.bpel.openmemes.com/}IHelloWorld-2}ERROR - GeronimoLog.error(108) | Deployment of IHello failed, aborting for now.org.apache.ode.bpel.iapi.ContextException: Could not activate endpoint for service {restful.bpel.openmemes.com/}IHelloWorld and port IHelloWorldPort at org.apache.ode.axis2.BindingContextImpl.activateMyRoleEndpoint(BindingContextImpl.java:62) at org.apache.ode.bpel.engine.ODEProcess.activate(ODEProcess.java:725) at org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:380) at org.apache.ode.axis2.ODEServer.handleEvent(ODEServer.java:626) at org.apache.ode.axis2.ODEServer.access$100(ODEServer.java:91) at org.apache.ode.axis2.ODEServer$ProcessStoreListenerImpl.onProcessStoreEvent(ODEServer.java:613) at org.apache.ode.store.ProcessStoreImpl.fireEvent(ProcessStoreImpl.java:517) at org.apache.ode.store.ProcessStoreImpl.fireStateChange(ProcessStoreImpl.java:523) at org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:301) at org.apache.ode.axis2.deploy.DeploymentPoller.check(DeploymentPoller.java:144) at org.apache.ode.axis2.deploy.DeploymentPoller.access$300(DeploymentPoller.java:55) at org.apache.ode.axis2.deploy.DeploymentPoller$PollingThread.run(DeploymentPoller.java:188)Caused by: org.apache.ode.axis2.OdeFault: Could not extract any soap:address from service WSDL definition {restful.bpel.openmemes.com/}IHelloWorld (necessary to establish the process target address)! at org.apache.ode.axis2.hooks.ODEAxisService.extractEndpointUri(ODEAxisService.java:188) at org.apache.ode.axis2.hooks.ODEAxisService.extractServiceName(ODEAxisService.java:202) at org.apache.ode.axis2.ODEServer.createService(ODEServer.java:323) at org.apache.ode.axis2.BindingContextImpl.activateMyRoleEndpoint(BindingContextImpl.java:59) ... 11 more
The while cycle is using all the systems resources, and brings Apache ODE to a halt.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
9 comments
Watch Thread Reply