I am surprised that a few other folks haven't chimed in on this thread.

Rob Schramm

Rob Schramm
Senior Systems Consultant
Imperium Group



On Fri, Jun 13, 2014 at 7:10 AM, Jantje. <[email protected]> wrote:

> On Thu, 12 Jun 2014 12:10:23 -0700, Phil Smith <[email protected]> wrote:
>
> >We have a very simple API that we'd like to enable for use from WAS
> applications on z/OS.
>
> You ought to be aware that typically in a WAS, you have many threads
> running alongside each other. If you will be calling your API from several
> different threads in parallel, you need to make sure your code is
> thread-safe. Or you need to serialise access to it.
>
>
> > Currently we support any standard language that calls us with an
> OS/360-style plist, passing pointers to character strings and to fullword
> lengths of those strings.
>
> That is doable in JNI too. I am sure Steve Comstock will chime in where
> multi-language calling conventions are involved...
>
>
> >From my reading, it appears that JNI is the way to go here. I know that
> JNI is considered A Bad Thing (to quote my manager), but reading
> http://en.wikipedia.org/wiki/Java_Native_Interface#Pitfalls doesn't leave
> me concerned-none of those seem like anything that will affect us.
>
> JNI can be brittle if not coded properly. You are responsible yourself for
> correctly managing object references and for releasing them at the right
> time. You may want to do some reading on the subject. I started with "The
> Java™ Native
> Interface - Programmer’s Guide and Specification" by Sheng Liang. This
> book has some age to it, but is still valid.
>
> >So it all seems pretty straightforward, but if someone had a trivial
> example they could share, that would help.
>
> I may have a few helper functions in C that should make coding a bit
> easier. Contact me off-line at jan dot moeyersons at gfi dot be if you want.
>
> >
> >Questions:
> >
> >1)      Is it reasonable to expect that a Java program running in batch
> (assuming that's even a possible environment?) could use the same JNI shims?
>
> In fact batch will probably be easier, because WAS will not interfere with
> your threads.
> Oh, and don't forget JZOS makes it very easy to fire up your Java batch
> programs.
>
> >2)      What other pitfalls should we expect?
>
> Lost or forgotten object references will cause memory leaks.
> Exception handling is NOT automatic. You can throw and catch exceptions in
> your JNI code, but you have to be aware that throwing an exception does not
> interrupt the flow of your C code; you need to cater for that.
> Make sure you use the proper functions to get and put data in your Java
> objects; they depend upon the type of data.
>
>
> >3)      What questions am I not asking that I should be?
>
> Not sure about that one...
>
> Cheers,
>
> Jantje.
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to