users@glassfish.java.net

RE: RE: RE: RE: Re: JNI/CompositeApp/Glassfish

From: Markus Karg <karg_at_quipsy.de>
Date: Fri, 29 May 2009 19:56:46 +0200

Well, if time is scarce then you might should abstain from writing
novels like this and concentrate on the technological issues. If you
want use GlassFish this does not mean that you must use EJB. If EJB
forbids JNI this does not mean that it is impossible to use it in
GlassFish. The question is: What do you want to get?

If you want a portable solution, you must wrap JNI using JCA, just like
Java EE specifies it. JCA is not as complex as you might think and you
can use ready to use building bricks, like RAFC
(http://sourceforge.net/projects/rafc). Using RAFC is simple and it
provides 90% of the boilderplate code.

If you do not need a portable solution, just hack your JNI calls into
your server side (EJBs or whatever). If there is a bug, ask your
questions here and the community will help.

If you don't essentially need GlassFish and you just want to have a
stable platform, use JAX-WS contained in Java SE 6. Believe mit, that is
thoroughly tested, too.

Independent of what your decision is, please DECIDE ON YOUR OWN, but DO
DECIDE. We try to help you, but we just do not understand what your
actual, TECHNICAL problem is.

Regards
Markus

> -----Original Message-----
> From: Martin, Ray [mailto:armart3_at_tycho.ncsc.mil]
> Sent: Freitag, 29. Mai 2009 16:14
> To: users_at_glassfish.dev.java.net
> Subject: RE: RE: RE: Re: JNI/CompositeApp/Glassfish
>
> Yea - I hear you. I am running around in circles right now trying to
> find a temporary solution.
>
> I was, in times past, of the opinion to steer clear of Glassfish.
But,
> I have since drank the cool-aid - I now want ALL my SOA nodes to be
> Glassfish. Glassfish means a lot of different things. At one moment
> in
> time, Glassfish means one thing, in another moment in time Glassfish
> has
> another meaning. But, for me, all cases have the meaning of a grid of
> SOA nodes. SOA nodes? Yes, Sir. How else but JAX-WS? So, for me, ALL
> my Glassfish instances hava a 'JAX-WS port' (some have several).
>
> So, people, far smarter than I, have built a container with SOA
> 'faces'.
> They have tested. They have reduced the footprint. They have
systemic
> qualities. They have flexibility that allows for different uses -
> sometimes running J2EE stacks, sometimes running EJBModules, sometimes
> running IEP, sometimes BPEL - but, no matter, for me, all have 'JAX-WS
> ports'. It is called Glassfish. And, in the face of all of that,
> someone
> suggests "just go make your own container" - a simple container, but a
> container none-the-less. Not being your brightest boy - this just
> blows
> my mind.
>
> When the system starts up, dozens (today - hundreds to thousands,
> tomorrow)of Glassfish nodes light up. The nodes are instructed to
load
> their behavior. Processing begins - as needs change, bottle necks are
> located, the system is further tuned - nodes are added and behavior is
> loaded at the node. To enable this type of system, we are always
> looking for commonality - reduction in variability while maintaining
> flexibility. Selecting a common container is important. I hung my hat
> on Glassfish. Can I run off and create my own container - yea - might
> do that. But, first, I look for that common factor. If it is not
> attainable, then I look for options. Several options have been
> provided
> - and, I appreciate all assistance that has been provided. JCA,
JAX-WS
> has been suggested. Of course, there are sockets. And there is JMS.
> All require a container (minimally, a listener) at the endpoint - too
> bad that container cannot be a Glassfish. I know that that container
> can be a ServiceMix, but I had my heels dug in, not wanting to go that
> direction. I will use a container before I write my own.
>
> So, if my superiors do not give me a pink ticket for not meeting my
> deadline, I will have multiple of these "JNI nodes" in my SOA grid.
> Now
> Glassfish has JMX for monitoring. There is a DAS if you cluster.
> There
> is Shoal coming along. But, my little decrepit JNI nodes that I
create
> will not allow for system awareness. They are warts on my system that
> will plague me forever. Thus, the reason why I want all processing
> nodes to live within Glassfish.
>
> So, I am between a rock and a hard place.
>
> I appreciate the assistance - you may have saved my job (if I can get
> one of the options working before time runs out). Thanx.
>
>
> -----Original Message-----
> From: Markus Karg [mailto:karg_at_quipsy.de]
> Sent: Friday, May 29, 2009 9:18 AM
> To: users_at_glassfish.dev.java.net
> Subject: RE: RE: Re: JNI/CompositeApp/Glassfish
>
> If all you need is to run a BPEL wrapper around a JNI call then you
> should have a look at JAX-WS, included in Java SE 6. No need for any
> enterprise stuff at all.
>
> > -----Original Message-----
> > From: Martin, Ray [mailto:armart3_at_tycho.ncsc.mil]
> > Sent: Freitag, 29. Mai 2009 14:22
> > To: users_at_glassfish.dev.java.net
> > Subject: RE: Re: JNI/CompositeApp/Glassfish
> >
> > Yes, Mr. Chris suggested to use jmap and jhat to locate the leak.
In
> > my search for how to use those tools, I found that JNI is not
> supposed
>
> > to work in EJB. So, I said to myself "wow, I am trying to do stuff
> > that you are not even supposed to be doing. It does not really
matter
> > whether there appears to be a leak or not - the specs say don't do
> > it." I
> will
> > spend many weeks on classloaders and jhat and jmap and... I had a
> > deadline to meet to show the great world of Glassfish SOA.
> >
> > I do not know how to deploy a POJO app (with a BPEL 'face') in a
> > composite app. If I knew that, I could call the JNI from the POJO
> > (staying out of that EJB world) and meet my deadline and put a smile
> on
> > my superiors faces. Then later, after my superiors agree that my
> > selection of Glassfish is marvelous, then I can look for memory
leaks
> > or whatever. But, right now, it's killing me.
> >
> > Thanx.
> >
> > -----Original Message-----
> > From: Sanjeeb.Sahoo_at_Sun.COM [mailto:Sanjeeb.Sahoo_at_Sun.COM] On Behalf
> Of
> > Sahoo
> > Sent: Friday, May 29, 2009 8:07 AM
> > To: users_at_glassfish.dev.java.net
> > Subject: Re: JNI/CompositeApp/Glassfish
> >
> > Martin,
> >
> > I am confused. What's your issue? In your first posting you
mentioned
> > that you were successful in running JNI code inside GlassFish except
> > that you suspected some memory leak for which Chris suggested to use
> > tools like hat. You were supposed to analyse the memory leak. Have
> you
>
> > identified the cause? If yes, then tell us and tell us if it needs a
> > fix in GF.
> >
> > I have failed to identify if you have any other issue in this email
> > thread. Personally, I have not come across many use cases where a
> J2EE
>
> > app uses JNI. It appears that the spec discourages use of JNI. See
> [1]
>
> > for some discussion. So, over all, it should work with some
> > limitations.
> >
> > Thanks,
> > Sahoo
> >
> > [1]
> http://www.theserverside.com/discussions/thread.tss?thread_id=14057
> >
> > Martin, Ray wrote:
> > > i am readin' and scratchin' for JCA information - WOW. What a
> > complex
> >
> > > convoluted mechanism to merely call a tiny piece of code.
> > >
> > > i have many Glassfish instances running a variety of things as SOA
> > > nodes. One of the things that one of the Glassfish nodes must do
> is
>
> > > run a mathematical algorithm called a bayesian net.
> > >
> > > Why should it matter that that one instance is not portable? So,
> it
>
> > > must run on a specific hardware platform, who cares? All that is
> > > necessary is for the classloader to function properly to allow
this
> > > particular non-portable code to run in a nice simplistic manner.
> > >
> > > But, no - i now am required to build my own EIS-like system to
> > contain
> >
> > > a daemon process to listen for commands to run a small algorithm.
> > > Then i need to create an adapter. Then i need to create a
> connector.
> >
> > > Then i need to ... oh boy.
> > >
> > > And, there is something wrong with a system in which a Glassfish
> node
> > > performs some specialty algorithm? Hmm - yep, i am too dumb to
> > > understand that.
> > >
> > >
> ---------------------------------------------------------------------
> > -
> > > --
> > > *From:* Martin, Ray
> > > *Sent:* Friday, May 29, 2009 6:22 AM
> > > *To:* users_at_glassfish.dev.java.net
> > > *Subject:* RE: RE: RE: JNI/CompositeApp/Glassfish
> > >
> > > i am too dumb to know that was a solution...
> > >
> > >
> ---------------------------------------------------------------------
> > -
> > > --
> > > *From:* Markus Karg [mailto:karg_at_quipsy.de]
> > > *Sent:* Friday, May 29, 2009 6:14 AM
> > > *To:* users_at_glassfish.dev.java.net
> > > *Subject:* RE: RE: JNI/CompositeApp/Glassfish
> > >
> > > The idea of EJB is to have a portable application which runs on
any
> > > application server on any operating system on any hardware
> platform.
> > > JNI works only with a particular operating system and hardware
> > > platform. These two core ideas are absolutely not compatible. It
> just
> > > makes no sense to use EJB directly with JNI. If native stuff is
> > needed
> >
> > > in an enterprise application, it has to be provided in the form of
> a
>
> > > JCA 1.5 adapter. This is the official Java EE solution to bind
> > > portable applications (EJB) to platform-specific code (JNI). What
> > > problem do you have with that?
> > >
> > >
> > >
> > > *From:* Martin, Ray [mailto:armart3_at_tycho.ncsc.mil]
> > > *Sent:* Freitag, 29. Mai 2009 12:08
> > > *To:* users_at_glassfish.dev.java.net
> > > *Subject:* RE: JNI/CompositeApp/Glassfish
> > >
> > >
> > >
> > > Very smart people created JNI.
> > >
> > > Very smart people created EJB.
> > >
> > >
> > >
> > > These very smart people make sure that JNI cannot operate within
> EJB
> > -
> >
> > > why would people do something like that?
> > >
> > >
> > >
> > > i have fuddled for months building a system around glassfish - now
> it
> > > looks like i am back to ServiceMix, where i was a year ago
> > >
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > -
> > > --
> > >
> > > *From:* Martin, Ray
> > > *Sent:* Thursday, May 28, 2009 12:54 PM
> > > *To:* users_at_glassfish.dev.java.net
> > > *Subject:* JNI/CompositeApp/Glassfish
> > >
> > > Does anyone have a JNI application running in Glassfish?
> > >
> > >
> > >
> > > I have a third party JNI app (Netica). It runs fine from the
> command
> > > line.
> > >
> > >
> > >
> > > i have an EJBModule and a BPEL project added to a composite app.
> The
> > > composite app is deployed to Glassfish and runs fine - receiving
> and
>
> > > responding to SOAP message.
> > >
> > >
> > >
> > > i then add the JNI app to the EJBModule and deploy the composite
> app
>
> > > to Glassfish.
> > >
> > >
> > >
> > > there are two SOAP messages to the composite app - setup and
> > activate.
> > >
> > >
> > >
> > > i issue the setup message - the request and response occur.
> > >
> > > i issue the activate message - the JNI app runs - all is good -
the
> > > results are stored in the database.
> > >
> > > after the JNI app should be completed, the memory usage starts to
> > climb.
> > >
> > >
> > >
> > > any suggestions?
> > >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> > For additional commands, e-mail: users-help_at_glassfish.dev.java.net
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> > For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net