This blog collects all the blog entries, related to Sun Java CAPS, Sun GlassFish ESB and Sun OpenESB, which I posted to Java CAPS Field Technical Tips, http://blogs.sun.com/javacapsfieldtech/ from the time I started blogging to end of February 2010.

Of late I am also posting articles on Oracle SOA Suite as it applies to HL7 v2 processing, and similar matters.

From March 2010 this is my principal blog spot.

From October 2016 I am blogging on technical topics which are not vendor product-focused.

39 Responses to “About”

  1. roshan says:

    Hi Michael
    Do you see Oracle supporting X12 maps similar to HL7 support.


  2. Bhushan says:

    Hi Michael,

    I am trying to process HL7 messages as batch file (multiple A04 HL7 messages in a same file) using Glassfish OpenESB v2.1. But it only processes the first message and ignores rest, no error, no warning. I have enabled the multipleRecordsPerFile flag and also set the recordDelimiter as ‘LINE FEED’. Can you suggest me something regarding this?

    Thanks and regards,


  3. Bhushan says:

    Hi Michael,

    I am trying to deploy an OpenESB BPEL project on a linux server. This project makes use of Pojo, Database and File Binding components. It works fine on my local machine and even on my colleague’s local machine. But when I deploy it on server, the Database and File Binding components does not start properly and I can see their state as ‘Unknown’ at “JBI> Service Assemblies> ” in the Glassfish Admin console. (For other projects deployed on server, these components show state as ‘Started’ ). Can you please suggest me something regarding this? I have redeployed project, re-built it, and even restarted the server several times.

    Thanks and regards,


  4. Thomas says:

    Hi Michael,

    I’ve some HL7 output files from a applikation that are not `real` HL7.
    For this reason, I must exchange some fieldvalues with other ones.
    Because some of the files can contain a lot of values to be translated,
    I’d like to put this transcodes in a file somewhere on the integration server.
    Would it be a good idea to do this with a java propertie-files (as you noted in some prior posts)?

    Thanks and regards,

  5. Hello, Thomas.
    I don’t understand what you are trying to do.
    “not `real` HL7” sounds like the messages do not follow standard HL7 structures. If this is the case then you need to define a custom structure to represent these messages and build a transformation logic to transform them to appropriate standard HL7 structures.
    “I must exchange some field values” and “files can contain a lot of values to be translated” sounds like you have valid HL7 structures but you need to manipulate data in some, possibly, many fields to translate data from some code set to another. If this is the case then how best to do this depends on many factors, principally on what you are using to do the translation – Java or BPEL, how many values you have and how likely they are to change, and so on.

    So, I don’t have a recommendation – “insufficient data” 🙂



  6. Thomas says:

    Hello Michael,

    Sorry about my english – in german I could be more precise… ;-).
    There are two independed questions – but same solution in the end…
    We work with jCAPS 5.1.3 – and Java.

    Question 1 – transcode:
    The sending application doens’t follow standard HL7-values (not structures).
    Normaly the patient sex is codes as M and F in standard HL7.
    The sending application gives us a M and W (german interpretation…).
    This way I have to `normalize` the data – and I’d like to do that in a file.

    Question 2 – filter:
    There are some application, that need only a subset of messages.
    The filter is for example a set of organisationids.
    I’d like to put that ids in a file – because the ids frequently change (don’t aks…).
    This way I could simply change the ids in the file.

    Question regarding the performance:
    In either case, if I check these transcode/filter-files each time the jcd runs – there will bee some performance impacts – I guess. Would it be possible to `load` such a files to a global array/hashtable?
    (the array could be updated via a BatchInbound that polls for changes I do to the source file.. . 😉 )

    Sorry for asking this here. I couldn’t finde no hints on this in ‘your’ book, nor by our dealer/supporter. A first hint on this, I found in your post ‘propertie-files’.

    Thanks and regards

  7. Thomas says:

    Hello Michael,

    Thank’s for your great help – some of the documents I allready know – the others give me a good idea, that something is not correct in my mindset… “This technique contravenes at least two rules”… 🙂
    Maybe I’ll go to load the ‘property-file’ via a jCAPS BatchLocalFile and put its payload to a java-hashtable.
    This way I wouldn’t break EJB rules, would I?
    And as long as there are no performance problems…

    What’s wrong in our environement, that we need such filter/transcodes -regarding the fact, that in jCAPS this is not considered to be a need?

    Thanks and regards

    ps: I can’t find the button ‘make a donation’ (you have my email!)

  8. Hello, Thomas.
    If you are simply reading the properties and not modifying them don’t worry about JEE rules that you might be violating. If this kind of solution works for you then use it 🙂 Rules are there to be broken if you have a good reason and are willing to accept the consequences (in this case there are no consequences).

    I don’t know what is wrong with your environment or even if there is anything wrong with it 🙂

    There in no Donate button because the articles I write are free / gratis. Thanks for offering to donate. You are welcome to buy the Java CAPS book, if you have not done so already 🙂



  9. Hi Michael,
    Nice articles on SOA suite B2B and Hl7 integration.I am looking for a generic Database schema for Hospital and Connected entities which will simulate all the HL7 message types(Atleast patient related). I need schema in such a way that I would be able to map the incoming Hl7 messages to DB entities. This will help us in developing POC Around Hl7 using the SOA and B2B(A kind of dummy Hospital IT infrastructure).

    If you can provide me pointers; that would be great help


    • Hello, Sushil.

      I had a crack at a HL7-like DB schema about 10 years ago. The projecyt never went anywhere. I am not aware of such a thing existing or that it would be useful as a model for a hospital – I doubt that it would. HL7 v2, which is what I assume you are working with, was never intended to represent clinical concepts. From the patient informaiotn standpoint you probably need to model PID, PV1, PV2 9perhaps, perhaps not), NK1 and similar. Have a look at the HL7 v2 standard specs, for example http://www.hl7.org/library/General/v231.zip will give you the draft HL7 v2.3.1 spec. Bed on that you can try ti figure out which segments (groups of related informaiton) are relevant to what you are trying to accomplish and based on segment structures how a database schema should look like. Keep it simple 🙂



  10. Raghu says:

    Hi Michael,

    We are currently trying to build few strategies fro migrating from jcaps to Oracle SOA Suite.Oracle has cleary stated regarding the jcd’s and Bpel’s migration ,But What about migration projects of other components like eXchange ,eView,eTL,eBAM ? Can we have any work around similar to jcd to spring Context .

    Thanks in advance

    • Hello, Raghu.

      I can’t make promises for Oracle 🙂
      – eXchange -> this is configuraiton – use SOA Suite B2B – it supports a superset of protocols supported by eXchange
      – eView – the most recent incarnation is the OHMPI (Oracle Healthcare Master Person Index – a strategic product developed now by teh Heath Sciences Global Business Unit) – I will be happy to discuss this in detail
      – eBAM – this saw very little use over the years nad has not been supported in any version of Java CAPS 6 – use Oracle BAM – much better
      – eTL – this has not seen much use – Oracel ELT and ETL toolin gis much more robust and feature rich – onsider re-developing in that environment



  11. Raghu says:

    Thanks for the Update Michael

    I have gone through your blog regarding the migration of HL7 projects from jcaps to SOA Suite using Spring .You have mentioned that the best bets for migration would be be the HL7,X12,EDIFACT ,SWIFT. If we are looking at migration of the Jcds containing Oracle,Batch,SAP adapters which are tightly coupled to Jcaps ,in that case how far can we achieve re-usability of the existing jcds and what level of effort need to be put into migration and what level of dependency would be there on JCAPs.


  12. Michael Czapski says:

    Hello, Raghu.

    The less “generic” mapping code the less reusability.
    Any adapter-specific code is not portable.
    Rather than using Java CAPS Batch eWay you will have to use Oracle File Adapter or some other Oracle or Third-party Adapter with the required funcitonality. The same goes for SAP Adapter and Oracel DB Adapter. Any code addressing specific adapter funcitonality, like “BatcheWay”.getPatyload() and such will have to be re-written/modifed to use the corresponding Oracle/third party adapter API. I cannot put an estimate on the expected effort. Nobody can, without looking at specific JCDs.



  13. Raghu says:

    Thanks for the help Michael.Will get back to you if i face still any issues Going Forward

  14. Wonwoo says:

    Hi Michael

    I has been playing with Oracle SOA for the last 6 months in order to migrate JCDs to Oracle. I am considering Spring Components for its strategy to minimize its migration impacts.
    BTW, my question is how Java code can call Oracle Adapter API including FTP/File so that JCD java program can utilize this function.
    I cracked their adapters and serched all of web site, but it is not straight forward like JCAPS. Looks like nobody tried to use Oracle SOA Adapter API in Java.


    • Hello, Wonwoo.

      I am afraid I have not gone into SOAP Suite in enough depth to be able to advise others, Perhaps a SOA Suite mailing list will be a good place to ask.

      All the best


  15. gede says:

    hai micdhael,..im new in oracle b2b…i have some questions for you…what is listening channel? what is the difference between listening channel and delivery channel?…how about internal delivery channel,internal listening channel,external delivery channel,and external listening channel?

  16. gede says:

    oh thanks a lot Michael..now i know the answer…mmm…i have built some project…it is about to send hl7 message via mllp transport protokol to inbound direction..i’m using mllp channel (server mode)…so my mllp client application can send hl7 message throught that channel..i already make an agreement on trading patner too…but when i remove mllp channel on agreement channel list…the message can still be delivered …why it can happen??..please explain me how it can be occured…thanks…

  17. Thiago says:

    Hi MIchael,

    I wonder if you can help me with some JCAPS 6.2 issues.

    I have an WebService that uses HTTP eWay and it is running fine in an instalation of JCAPS 6.0 R1. Now I imported it into my 6.2 repository and when try to run I receive the following line :

    Error in allocating a connection. Cause: RAFWK-0112: Failed to initialize the EwayConnection instance of type com.stc.connector.httpadapter.eway.HTTPEwayConnection

    Do you have any idea why I receive this ?

    Thanks !

    • Hello, Thiago.

      The most exepditious way to get help will be to contact your Oracel Java CAPS Support team and ask for assistance. Unfortunatelly I am not in a position to spend providing support at this level.



  18. Dustin says:

    Hi Michael,

    I recently purchased your excellent Java Caps Basic book and have a question for you. In part two on the CD, do you have the jcaps export files available for the HTTP adapter or the SOAP/HTTP adapter?


    • Hello, Dustin.

      The export of all projects which were “exportable” is available through the http://blogs.czapski.id.au/2009/01/java-caps-basics-book-project-exports-archive

      Good luck


      • Dustin says:

        Thank you, Michael

      • Dustin says:

        Hello Michael,

        Sorry to bother you about this question. In the HTTP eway example, supposed I am sending a message to an external web server and with only access to the log file for the client, how do I capture the SOAP message BEFORE it is delivered to the web server from the JCD?


        • Hello, Dustin.

          When using a HTTP Client eWay you should be able to log anythong that the eWay sends and receives, after ll it is you who is providing the HTTP headers and the document body you are sending. The HTTP eWay does not care whether what you are sending is a SOAP message or not. I don’t understand your issue from the question.

          If you are not using the HTTP eWay but a Wweb Service Container then the matter is harder. In Java CAPS 5.1.3 U2 there is a new “soap handler” mechanism, which you might look at to see if it gives you what you need.
          I did not try this and now never will.

          You can also look at putting a proxy between your sender and your receiver – something like TCPmon or Burp is you are using SSL.



  19. Sebo says:

    Hi Michael,

    do you know if Oracle SOA Suite Healthcare Adapter supports HL7 v3 and in what scope if so.

    thnak you,

  20. Ian Jarvis says:


    Do you have a design pattern implemented in SOA Suite using a mediator based composite that will pull records from a database and publish them to a JMS queue as individual messages, i.e. 1 JMS message per row of data in the database table? We have an implementation that works except that it bundles all the records in to one JMS message. We can’t work out how to get the mediator to generate distinct messages.

    We are generating HL7 2.x messages from the database records.

    Thanks in advance


    • Hello, Ian.

      Alas, I am not the person to ask this. I am out of this business now.
      You will need to reach to SOA Suite gurus, perhaps through an Oracle forum where such people hang out. Perhaps: https://community.oracle.com/community/fusion_middleware/soa_and_process_management/soa_suite_3
      This is not really a HL7 question but rather a SOA Suite question.
      Please keep in mind that depending on how you construct your hl7 messages you may have a segment terminator issue. XML (if your message is XML at any point) treats all line terminators and whitespace the same and replaces all CRs with LFs. Check to make sure that you get what you are expecting.



  21. Jacques says:

    Hi Micheal,

    I am hoping you can help. I saw a post you made in reply to a person who was trying to get Mutual authentication to work in JCAPS.

    I have a requirement to create an FTPS or SFTP connection and to use Mutual Authentication.

    Any documentation on how to achieve that using JCAPS 5 and JCAPS 6 would be greatly appreciated.


  22. Thomas Good says:


    I got everything working on Slackware 13.1 (linux) however I get a fatal when I try to send: Exception in thread “main” ca.uhn.hl7v2.HL7Exception: Invalid or incomplete encoding characters – MSH-2 is ^~&

    Meanwhile MSH is correctly formed (it parses successfully on the receiving server when I use an app called socketReader): MSH|^~&|SQLCLINIC| … etc. and I get an ACK back.

    Any ideas what could be the issue here (I’m a perl programmer and know nothing about java!)

    I would really prefer to use your as the syntax is very standard (especially to a unix person) and the documentation is good. But this MSH issue has me stuck.


    • Hello, Tom.
      Please zip up (or tar up if you on linux/unix) the sample message and send it to me to look at.
      my first name dot “w” dot my last name at gmail dot com

Leave a Reply

preload preload preload