You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Julian Klappenbach <jk...@gmail.com> on 2012/04/28 19:20:19 UTC

New here...

Hey all!

I'm just joining on the group, and thought I'd introduce myself.  I've
worked in software development for over 20 years, a good portion of that
developing Java enterprise solutions and applications.  I've previously
worked at BEA, before Oracle bought them, and really enjoyed the work.

I have a new project for a client that needs a good J2EE stack, and I've
been evaluating the code and documentation for most of the candidates in
the market.  Geronimo has really stood out.

My primary focus on the stack, at least initially, will mirror the
requirements for the application I'm developing.  The system is to be a
transaction processing engine, dealing with money.  The system also needs
to scale, and scale efficiently and effectively.  At first glance, that's a
likely recipe for distributed transactions and XA protocols over all
resources involved in transactions.  There are other ways of solving the
issues of DT that sacrifice consistency for simplicity and speed, but these
are often simple hacks or procedural in nature.  I'm interested in the
types of features that could be worked into a transaction engine /
persistence layer to give more options to developers, perhaps coming up
with protocols that offer heuristic recovery functionality without the
overhead of DPC.

I'm also interested in transaction processing married to web services -- be
they SOAP, REST, or JSON via JAX-WS.  WS-AT, WS-Coordination, and WS-BA are
all areas that I'd like to explore.

If any of you are involved in these areas, please get in touch.  I'd like
to learn more about what you're doing and how I may eventually contribute
in kind.

I'm looking at the code base right now, and I've read the documentation on
building Geronimo.  Is there a tag other than the beta release that will
give me something stable?  The trunk has been giving me dependency issues.
 I've run bootstrap successfully, but am still hitting (among other
dependency complaints):

[ERROR] Failed to execute goal on project j2ee-system: Could not resolve
dependencies for project
org.apache.geronimo.framework:j2ee-system:car:3.0-SNAPSHOT: Failure to find
org.apache.geronimo.framework.features:framework:kar:3.0-SNAPSHOT

not even halfway through the build.  Are there other targets I need to
first execute in order to ensure that these dependencies are built and
installed?  If there's other documentation online that explain this, just
point the way.  Otherwise, a known valid tag would be great.  I'm
considering getting a maven proxy set up so I can grab trunk and mediate
packages independently.

Anyway, as I learn the stack, I'll do what I can to add documentation, etc.

Cheers!

Julian

Re: New here...

Posted by Forrest Xia <fo...@gmail.com>.
Welcome to our community!

As to your questions about a stable tag to try, if you are interested at
JEE 5, you could try the latest 2.1 branch release -
http://svn.apache.org/repos/asf/geronimo/server/tags/geronimo-2.1.8/

If JEE 6, you could try 3.0-beta-1,
http://svn.apache.org/repos/asf/geronimo/server/tags/geronimo-3.0-beta-1

Don't hesitate to post any problem you might hit when trying those release,
hope you a good journey with Geronimo!

On Sun, Apr 29, 2012 at 1:20 AM, Julian Klappenbach
<jk...@gmail.com>wrote:

> Hey all!
>
> I'm just joining on the group, and thought I'd introduce myself.  I've
> worked in software development for over 20 years, a good portion of that
> developing Java enterprise solutions and applications.  I've previously
> worked at BEA, before Oracle bought them, and really enjoyed the work.
>
> I have a new project for a client that needs a good J2EE stack, and I've
> been evaluating the code and documentation for most of the candidates in
> the market.  Geronimo has really stood out.
>
> My primary focus on the stack, at least initially, will mirror the
> requirements for the application I'm developing.  The system is to be a
> transaction processing engine, dealing with money.  The system also needs
> to scale, and scale efficiently and effectively.  At first glance, that's a
> likely recipe for distributed transactions and XA protocols over all
> resources involved in transactions.  There are other ways of solving the
> issues of DT that sacrifice consistency for simplicity and speed, but these
> are often simple hacks or procedural in nature.  I'm interested in the
> types of features that could be worked into a transaction engine /
> persistence layer to give more options to developers, perhaps coming up
> with protocols that offer heuristic recovery functionality without the
> overhead of DPC.
>
> I'm also interested in transaction processing married to web services --
> be they SOAP, REST, or JSON via JAX-WS.  WS-AT, WS-Coordination, and WS-BA
> are all areas that I'd like to explore.
>
> If any of you are involved in these areas, please get in touch.  I'd like
> to learn more about what you're doing and how I may eventually contribute
> in kind.
>
> I'm looking at the code base right now, and I've read the documentation on
> building Geronimo.  Is there a tag other than the beta release that will
> give me something stable?  The trunk has been giving me dependency issues.
>  I've run bootstrap successfully, but am still hitting (among other
> dependency complaints):
>
> [ERROR] Failed to execute goal on project j2ee-system: Could not resolve
> dependencies for project
> org.apache.geronimo.framework:j2ee-system:car:3.0-SNAPSHOT: Failure to find
> org.apache.geronimo.framework.features:framework:kar:3.0-SNAPSHOT
>
> not even halfway through the build.  Are there other targets I need to
> first execute in order to ensure that these dependencies are built and
> installed?  If there's other documentation online that explain this, just
> point the way.  Otherwise, a known valid tag would be great.  I'm
> considering getting a maven proxy set up so I can grab trunk and mediate
> packages independently.
>
> Anyway, as I learn the stack, I'll do what I can to add documentation, etc.
>
> Cheers!
>
> Julian
>



-- 
Thanks!

Regards, Forrest

Re: New here...

Posted by David Jencks <da...@yahoo.com>.
Welcome!

As you have probably worked out by now, our transaction manager is developed under components/txmanager/trunk.  There's also a more osgi-friendly version in my sandbox.  (the runtime functionality is pretty much the same, it's just configuration differences).

The tm is entirely xa based (no corba tm features) and fully supports recovery.   It supports lots of branches but does not currently include any tm-to-tm communication to support distributed transactions (where one of the branches is a transaction in another tm).  (It does support j2ca transaction inflow, so from that point of view the hard half of the problem is solved).

Our recovery protocol is AFAIK unique in providing incremental recovery as resource managers come online.  The way this works is that we name all the resource managers and record the name with the branch xid in the tx log.  That way when a resource manager reappears after a shutdown we can definitively dispose of all the branch xids that relate to that resource manager.  Without this feature, if the tm fails in between commit and recording commit in the tx log, there is no way to tell if the xids from the committed tx came from a resource manager that has restarted or one yet to restart.

We haven't provided last-resource 1-phase commit optimization because, well, it doesn't provide xa guarantees.  We do have an untested feature where you can use a db as the tx log and do a 1-phase commit on it as the last participant, but this is likely to be a lot slower than normal xa with a log.

The only way I know of to get better throughput and retain reliability is to find a way to generate idempotent operations.  I'm certainly interested in any other ideas you may have.

thanks!
david jencks


On Apr 28, 2012, at 10:20 AM, Julian Klappenbach wrote:

> Hey all!
> 
> I'm just joining on the group, and thought I'd introduce myself.  I've worked in software development for over 20 years, a good portion of that developing Java enterprise solutions and applications.  I've previously worked at BEA, before Oracle bought them, and really enjoyed the work.
> 
> I have a new project for a client that needs a good J2EE stack, and I've been evaluating the code and documentation for most of the candidates in the market.  Geronimo has really stood out.
> 
> My primary focus on the stack, at least initially, will mirror the requirements for the application I'm developing.  The system is to be a transaction processing engine, dealing with money.  The system also needs to scale, and scale efficiently and effectively.  At first glance, that's a likely recipe for distributed transactions and XA protocols over all resources involved in transactions.  There are other ways of solving the issues of DT that sacrifice consistency for simplicity and speed, but these are often simple hacks or procedural in nature.  I'm interested in the types of features that could be worked into a transaction engine / persistence layer to give more options to developers, perhaps coming up with protocols that offer heuristic recovery functionality without the overhead of DPC.
> 
> I'm also interested in transaction processing married to web services -- be they SOAP, REST, or JSON via JAX-WS.  WS-AT, WS-Coordination, and WS-BA are all areas that I'd like to explore.
> 
> If any of you are involved in these areas, please get in touch.  I'd like to learn more about what you're doing and how I may eventually contribute in kind.
> 
> I'm looking at the code base right now, and I've read the documentation on building Geronimo.  Is there a tag other than the beta release that will give me something stable?  The trunk has been giving me dependency issues.  I've run bootstrap successfully, but am still hitting (among other dependency complaints):
> 
> [ERROR] Failed to execute goal on project j2ee-system: Could not resolve dependencies for project org.apache.geronimo.framework:j2ee-system:car:3.0-SNAPSHOT: Failure to find org.apache.geronimo.framework.features:framework:kar:3.0-SNAPSHOT
> 
> not even halfway through the build.  Are there other targets I need to first execute in order to ensure that these dependencies are built and installed?  If there's other documentation online that explain this, just point the way.  Otherwise, a known valid tag would be great.  I'm considering getting a maven proxy set up so I can grab trunk and mediate packages independently.
> 
> Anyway, as I learn the stack, I'll do what I can to add documentation, etc.
> 
> Cheers!
> 
> Julian