AW: AW: Geronimo CMP update statements

2006-01-27 Thread Ueberbach, Michael
Hello Matt,

yes, this works. Thanks for the hint.
I think geronimo sends a statement like this one to the database

UPDATE table SET col1 = CASE WHEN false THEN null ELSE col1 END, col2 = CASE 
WHEN true THEN newValue ELSE col1 END, ...

and Oracle does not know how to handle the boolean values true and false, so 
they have to be replaced by some expressions like 1=1 or 1=0. (This way I can 
reproduce the situation)

Nevertheless I think this behaviour should be modified not only for the reason 
of wrongly fired triggers but also to reduce the transportation load.

regards
Michael



-Ursprüngliche Nachricht-
Von: Matt Hogstrom [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 26. Januar 2006 17:22
An: user@geronimo.apache.org
Betreff: Re: AW: Geronimo CMP update statements


Michael,

Add the following lines in your plan:

!--  For Oracle database users uncomment the following line.
 
ejb-ql-compiler-factoryorg.tranql.ejbqlcompiler.OracleQLCompilerFactory/ejb-ql-compiler-factory
 
db-syntax-factoryorg.tranql.sql.oracle.OracleDBSyntaxFactory/db-syntax-factory
--

These go after the cmp-connection factory.  Let me know if this fixes the 
problem.

Ueberbach, Michael wrote:
 Hello,
 
 I think there is another problem concerning this issue.
 Using an Oracle database (9i) I get this error when updating a cmr- field:
 
 (...)
 Caused by: org.tranql.ql.QueryException: Error executing statement: UPDATE 
 konto SET erzeugt = CASE WHEN ? THEN ? ELSE erzeugt END, bankname = CASE WHEN 
 ? THEN ? ELSE bankname END, bankleitzahl = CASE WHEN ? THEN ? ELSE 
 bankleitzahl END, kontonummer = CASE WHEN ? THEN ? ELSE kontonummer END, 
 kontostand = CASE WHEN ? THEN ? ELSE kontostand END, fk_person = CASE WHEN ? 
 THEN ? ELSE fk_person END WHERE guid = ?
 (...)
 Caused by: java.sql.SQLException: ORA-00920: invalid relational operator 
 
 This not the case when using MySQL.
 
 regards
 Michael
 
 
 -Ursprüngliche Nachricht-
 Von: Gianny Damour [mailto:[EMAIL PROTECTED]
 Gesendet: Donnerstag, 26. Januar 2006 13:16
 An: user@geronimo.apache.org
 Betreff: Re: Geronimo CMP update statements
 
 
 Hi Dan,
 
 At the beginning, I was not seeing this as an issue. Based on your 
 remark that triggers are wrongly fired, I now see this as an issue that 
 needs to be fixed.
 
 Could you please raise a JIRA for this problem?
 
 Thanks,
 Gianny
 
 Daniel John Debrunner wrote:
 
 
At ApacheConUS 2005 I talked with Matt Hogstrom about the SQL UPDATE
statements Geronimo was issuing against Derby for DayTrader.

A single UPDATE statement is generated for a table that updates all
columns using a CASE statement to ensure un-modified columns are not
changed, or in reality changed to the same value. An example is
described in GERONIMO-1080, the syntax may be a little different for Derby.

http://issues.apache.org/jira/browse/GERONIMO-1080

I see two issues with this approach, one is that for Derby this is
inefficient, and two, and probably more important, all SQL update
triggers will fire due to this modification of all columns. Thus if an
application defines a trigger on update of the address column of a
customer table, then when using Geronimo this trigger will fire, even if
the CMP application is only updating the customer's balance. This just
seems the wrong semantics to me.

Matt had said this was a known issue, and that it was going to be fixed.
The comments in GERONIMO-1080 seem to indicate that this may not be seen
as an issue, though those comments are dated before ApacheCon.

I searched Jira and couldn't see any bug for changing this, are there
any plans to address this?

Thanks,
Dan.



 

 
 
 
 
 
 


Re: How to connect to LDAP server on Geronimo from an LDAP client?

2006-01-27 Thread Phani Madgula
Hi Hernan/Aaron

The following is the export of my LDAP entries. I could export using JXplorer. I also used another LDAP client called LDAP Browser/Editor 2.8.2. 

In the below LDAP export, there are two users balaji1, balaji2 whose passwords are MD5 hashed.
Where as for other users, the passwords are stored PLAIN. So, with balaji1/balaji2, I am getting Userid/password wrong message in the browser while authenticating.

I am trying to find the answers for Aaron's questions. I will update soon.

version: 1dn: ou=systemobjectClass: organizationalUnitobjectClass: topou: systemuserPassword:: e21kNX1JU012S1hwWHBhZERpVW9PU29BZnd3PT0=
dn: uid=admin,ou=systemobjectClass: inetOrgPersonobjectClass: organizationalPersonobjectClass: personobjectClass: topcn: system administratordisplayName: Directory Superusersn: administrator
uid: adminuserPassword:: c2VjcmV0
dn: ou=users,ou=systemobjectClass: organizationalUnitobjectClass: topou: users
dn: uid=system,ou=users,ou=systemobjectclass: inetOrgPersonobjectclass: organizationalPersonobjectclass: personobjectclass: topcn: John Doefacsimiletelephonenumber: +1 408 555 5556givenname: John
l: Las Vegasmail: [EMAIL PROTECTED]ou: Peopleou: Human Resourcesroomnumber: 4613sn: Doetelephonenumber: +1 408 555 uid: systemuserPassword:: bWFuYWdlcg==

dn: uid=user1,ou=users,ou=systemobjectclass: inetOrgPersonobjectclass: organizationalPersonobjectclass: personobjectclass: topcn: Userfacsimiletelephonenumber: +1 408 555 5556givenname: User1
l: Las Vegasmail: [EMAIL PROTECTED]ou: Peopleou: Human Resourcesroomnumber: 4613sn: Onetelephonenumber: +1 408 555 uid: user1userPassword:: dXNlcjE=

dn: uid=user2,ou=users,ou=systemobjectclass: inetOrgPersonobjectclass: organizationalPersonobjectclass: personobjectclass: topcn: Userfacsimiletelephonenumber: +1 408 555 5556givenname: User2
l: Las Vegasmail: [EMAIL PROTECTED]ou: Peopleou: Human Resourcesroomnumber: 4613sn: Twotelephonenumber: +1 408 555 uid: user2userPassword:: dXNlcjI=

dn: uid=admin,ou=users,ou=systemobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersoncn: adminsn: adminuid: adminuserPassword:: YWRtaW4=
dn: uid=user3,ou=users,ou=systemobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersoncn: user3sn: user3uid: user3userPassword:: dXNlcjM=
dn: uid=user4,ou=users,ou=systemobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersoncn: user4sn: user4uid: user4userPassword:: dXNlcjQ=
dn: uid=phani1,ou=users,ou=systemobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersoncn: phani1sn: phani1uid: phani1userPassword:: cGhhbmkx

dn: uid=balaji1,ou=users,ou=systemobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersoncn: balaji1sn: balaji1uid: balaji1userPassword:: e21kNX1wRWdLL2ZSODZXQmlPU1FZYmdFQUpBPT0=

dn: uid=balaji2,ou=users,ou=systemobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersoncn: balaji2sn: balaji2uid: balaji2userPassword:: e21kNX1zdXNnSkwybWx0V0ZrZlpWWjk3WnBBPT0=

dn: ou=groups,ou=systemobjectClass: organizationalUnitobjectClass: topou: groups
dn: cn=admin,ou=groups,ou=systemobjectClass: groupOfUniqueNamescn: adminuniqueMember: uid=system,ou=users,ou=system
dn: cn=guest,ou=groups,ou=systemobjectClass: groupOfUniqueNamescn: guestuniqueMember: uid=user2,ou=users,ou=systemuniqueMember: uid=user1,ou=users,ou=system
dn: ou=configuration,ou=systemobjectClass: organizationalUnitobjectClass: topou: configuration
dn: ou=partitions,ou=configuration,ou=systemobjectClass: organizationalUnitobjectClass: topou: partitions
dn: ou=services,ou=configuration,ou=systemobjectClass: organizationalUnitobjectClass: topou: services
dn: ou=interceptors,ou=configuration,ou=systemobjectClass: organizationalUnitobjectClass: topou: interceptors
dn: prefNodeName=sysPrefRoot,ou=systemobjectClass: extensibleObjectprefNodeName: sysPrefRoot
dn: uid=phani-users,ou=systemobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersoncn: user1sn: user1uid: phani-users

Thanks
phani



On 1/26/06, Hernan Cunico [EMAIL PROTECTED] wrote:
Hi Phani,Can you export an LDIF so we can see your LDAP conf? I think the problem may be there.
So far I have been able to add new users and alter the groups with my other LDAP client. Jxplorer isgiving me some problems while importing/updating from LDIFs.Can you summarize the steps you do for adding the user?
Cheers!HernanPhani Madgula wrote: Hi Hernan, I am using AG1.0. I tried with other LDAP clients. I observed that, some clients store passwords in SHA, by deafult. The authentication is failing in either case [MD5 or SHA]
 Thanks phani On 1/25/06, *Hernan Cunico* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 wrote: Hi Phani, So far I am only getting this error while using Jxplorer. What other client have you tried? Cheers! Hernan
 Hernan Cunico wrote: Hi 

RE: Geronimo and Tivoli Access Manager (TAM)

2006-01-27 Thread Cristian Roldan
Hi,Should not be to difficult to create one though.Do you mean coding a JAAS module ?But my question ar:  Does geronimo support JACC ? if so can I use the Geronimo's JACC implementation to integrate with TAM ?ByeNicholas Irving [EMAIL PROTECTED] escribió:Hi,  I was not aware of a TAI available for Geronimo, but then again I was not aware of JACC in WebSphere 6. Should not be to difficult to create one though.NIrvingFrom: Cristian Roldan [mailto:[EMAIL PROTECTED] Sent: Friday, 27 January 2006 3:14 AMTo: user@geronimo.apache.orgSubject: Geronimo and Tivoli Access Manager (TAM)  Hi All, Does someone configure Geronimo and TAM ?Is Geronimo's JACC interfacemature enough ? Can I use Geronimo's JACC to integrate with TAM ? Any experience ?Thanks!!!1GB gratis, Antivirus y AntispamCorreo Yahoo!, el mejor correo web del mundoAbrí tu cuenta aquí  --No virus found in this incoming message.Checked by AVG Free Edition.Version: 7.1.375 / Virus Database: 267.14.23/240 - Release Date: 25/01/2006
  --No virus found in this outgoing message.Checked by AVG Free Edition.Version: 7.1.375 / Virus Database: 267.14.23/242 - Release Date: 26/01/2006  
		 
1GB gratis, Antivirus y Antispam 
Correo Yahoo!, el mejor correo web del mundo 
Abrí tu cuenta aquí

deploying EJB with CMR

2006-01-27 Thread Milan Unger
Hi,

I'm trying to deploy ear application with EJBs on Geronimo-1.0. The same
application deploys without a problem on Geronimo-1.0M5. After
transforming dependency format and parentIds for Geronimo 1.0 release I
still got following error from the deployer:

Target TransactionBean does not have foreign key attribute
transactionid.

Bellow are some snippets from openejb-jar.xml. Do you know a reason for
this problem?

Regards, Milan.

-- entities affected --
  entity
ejb-nameTransactionBean/ejb-name
local-jndi-nameejb/TransactionLocalHome/local-jndi-name

table-nametransactions/table-name
!-- table creation command --
!--
CREATE TABLE transactions(
transactionid INTEGER NOT NULL PRIMARY KEY,
ledgerid INTEGER NOT NULL,
date DATE,
marker VARCHAR(32))
--

cmp-field-mapping
cmp-field-namekey/cmp-field-name
table-columntransactionid/table-column
/cmp-field-mapping
cmp-field-mapping
cmp-field-namedate/cmp-field-name
table-columndate/table-column
/cmp-field-mapping
cmp-field-mapping
cmp-field-namemarker/cmp-field-name
table-columnmarker/table-column
/cmp-field-mapping

key-generator
sequence-table
table-namesequences/table-name
sequence-nametransaction/sequence-name
batch-size1/batch-size
/sequence-table
/key-generator

naming:resource-ref
naming:ref-namejdbc/CoordinatorDb/naming:ref-name

naming:resource-linkCoordinatorDataSource/naming:resource-link
/naming:resource-ref
/entity
entity
ejb-nameTransactionLineBean/ejb-name
local-jndi-nameejb/TransactionLineLocalHome/local-jndi-name

table-nametlines/table-name
!-- table creation command --
!--
CREATE TABLE tlines (
lineid INTEGER NOT NULL PRIMARY KEY,
transactionid INTEGER NOT NULL,
accountid INTEGER NOT NULL,
side CHAR(1) DEFAULT 'C',
ammount INTEGER,
CONSTRAINT FK_TLINES_TRANSACTION FOREIGN KEY (transactionid)
   REFERENCES transactions(transactionid))
--

cmp-field-mapping
cmp-field-namekey/cmp-field-name
table-columnlineid/table-column
/cmp-field-mapping
cmp-field-mapping
cmp-field-nameside/cmp-field-name
table-columnside/table-column
/cmp-field-mapping
cmp-field-mapping
cmp-field-nameammount/cmp-field-name
table-columnammount/table-column
/cmp-field-mapping

key-generator
sequence-table
table-namesequences/table-name
sequence-nameledger/sequence-name
batch-size10/batch-size
/sequence-table
/key-generator

naming:resource-ref
naming:ref-namejdbc/CoordinatorDb/naming:ref-name

naming:resource-linkCoordinatorDataSource/naming:resource-link
/naming:resource-ref
/entity

-- CMR causing the problem -
ejb-relation
ejb-relationship-role
relationship-role-source
ejb-nameTransactionBean/ejb-name
/relationship-role-source
cmr-field
cmr-field-namelines/cmr-field-name
/cmr-field
role-mapping
cmr-field-mapping
key-columntransactionid/key-column

foreign-key-columntransactionid/foreign-key-column
/cmr-field-mapping
/role-mapping
/ejb-relationship-role
ejb-relationship-role
relationship-role-source
ejb-nameTransactionLineBean/ejb-name
/relationship-role-source
cmr-field
cmr-field-nametransaction/cmr-field-name
/cmr-field
foreign-key-column-on-source/
role-mapping
cmr-field-mapping
key-columntransactionid/key-column


foreign-key-columntransactionid/foreign-key-column
---this is attribute mentioned in error message !

/cmr-field-mapping
/role-mapping
/ejb-relationship-role
/ejb-relation



Re: Geronimo and Tivoli Access Manager (TAM)

2006-01-27 Thread David Jencks
On Jan 27, 2006, at 3:38 AM, Cristian Roldan wrote:Hi, Should not be to difficult to create one though. Do you mean coding a JAAS module ? But my question ar:Does geronimo support JACC ? if so can I use the Geronimo's JACC implementation to integrate with TAM ? ByeGeronimo supports JACC, but at the moment you can't really use anything but Geronimo's JACC implementation.  I'm going to be looking at making this pluggable very soon.  Can you point to any documents indicating how TAM relates to JACC?   The only JACC implementation I have seen is ours  so seeing what other people get from the spec would be very useful :-)thanksdavid jencks Nicholas Irving [EMAIL PROTECTED] escribió:Hi,I was not aware of a TAI available for Geronimo, but then again I was not aware of JACC in WebSphere 6. Should not be to difficult to create one though. NIrving From: Cristian Roldan [mailto:[EMAIL PROTECTED]] Sent: Friday, 27 January 2006 3:14 AMTo: user@geronimo.apache.orgSubject: Geronimo and Tivoli Access Manager (TAM) Hi All,    Does someone configure Geronimo and TAM ? Is Geronimo's JACC interface mature enough ? Can I use Geronimo's JACC to integrate with TAM ? Any experience ? Thanks!!!1GB gratis, Antivirus y AntispamCorreo Yahoo!, el mejor correo web del mundoAbrí tu cuenta aquí--No virus found in this incoming message.Checked by AVG Free Edition.Version: 7.1.375 / Virus Database: 267.14.23/240 - Release Date: 25/01/2006--No virus found in this outgoing message.Checked by AVG Free Edition.Version: 7.1.375 / Virus Database: 267.14.23/242 - Release Date: 26/01/20061GB gratis, Antivirus y AntispamCorreo Yahoo!, el mejor correo web del mundoAbrí tu cuenta aquí

Re: deploying EJB with CMR

2006-01-27 Thread Aaron Mulder
When you have a one-to-many relationship, you only need mapping
information for one ejb-relationship-role in your openejb-jar.xml. 
I'm not sure if that's causing the problem, but can you remove one of
the two and try that?  See example 12.8 at
http://chariotsolutions.com/geronimo/ejb-structure.html#id2612837

Thanks,
Aaron

On 1/27/06, Milan Unger [EMAIL PROTECTED] wrote:
 Hi,

 I'm trying to deploy ear application with EJBs on Geronimo-1.0. The same
 application deploys without a problem on Geronimo-1.0M5. After
 transforming dependency format and parentIds for Geronimo 1.0 release I
 still got following error from the deployer:

 Target TransactionBean does not have foreign key attribute
 transactionid.

 Bellow are some snippets from openejb-jar.xml. Do you know a reason for
 this problem?

 Regards, Milan.

 -- entities affected --
   entity
 ejb-nameTransactionBean/ejb-name
 local-jndi-nameejb/TransactionLocalHome/local-jndi-name

 table-nametransactions/table-name
 !-- table creation command --
 !--
 CREATE TABLE transactions(
 transactionid INTEGER NOT NULL PRIMARY KEY,
 ledgerid INTEGER NOT NULL,
 date DATE,
 marker VARCHAR(32))
 --

 cmp-field-mapping
 cmp-field-namekey/cmp-field-name
 table-columntransactionid/table-column
 /cmp-field-mapping
 cmp-field-mapping
 cmp-field-namedate/cmp-field-name
 table-columndate/table-column
 /cmp-field-mapping
 cmp-field-mapping
 cmp-field-namemarker/cmp-field-name
 table-columnmarker/table-column
 /cmp-field-mapping

 key-generator
 sequence-table
 table-namesequences/table-name
 sequence-nametransaction/sequence-name
 batch-size1/batch-size
 /sequence-table
 /key-generator

 naming:resource-ref
 naming:ref-namejdbc/CoordinatorDb/naming:ref-name

 naming:resource-linkCoordinatorDataSource/naming:resource-link
 /naming:resource-ref
 /entity
 entity
 ejb-nameTransactionLineBean/ejb-name
 local-jndi-nameejb/TransactionLineLocalHome/local-jndi-name

 table-nametlines/table-name
 !-- table creation command --
 !--
 CREATE TABLE tlines (
 lineid INTEGER NOT NULL PRIMARY KEY,
 transactionid INTEGER NOT NULL,
 accountid INTEGER NOT NULL,
 side CHAR(1) DEFAULT 'C',
 ammount INTEGER,
 CONSTRAINT FK_TLINES_TRANSACTION FOREIGN KEY (transactionid)
REFERENCES transactions(transactionid))
 --

 cmp-field-mapping
 cmp-field-namekey/cmp-field-name
 table-columnlineid/table-column
 /cmp-field-mapping
 cmp-field-mapping
 cmp-field-nameside/cmp-field-name
 table-columnside/table-column
 /cmp-field-mapping
 cmp-field-mapping
 cmp-field-nameammount/cmp-field-name
 table-columnammount/table-column
 /cmp-field-mapping

 key-generator
 sequence-table
 table-namesequences/table-name
 sequence-nameledger/sequence-name
 batch-size10/batch-size
 /sequence-table
 /key-generator

 naming:resource-ref
 naming:ref-namejdbc/CoordinatorDb/naming:ref-name

 naming:resource-linkCoordinatorDataSource/naming:resource-link
 /naming:resource-ref
 /entity

 -- CMR causing the problem -
 ejb-relation
 ejb-relationship-role
 relationship-role-source
 ejb-nameTransactionBean/ejb-name
 /relationship-role-source
 cmr-field
 cmr-field-namelines/cmr-field-name
 /cmr-field
 role-mapping
 cmr-field-mapping
 key-columntransactionid/key-column

 foreign-key-columntransactionid/foreign-key-column
 /cmr-field-mapping
 /role-mapping
 /ejb-relationship-role
 ejb-relationship-role
 relationship-role-source
 ejb-nameTransactionLineBean/ejb-name
 /relationship-role-source
 cmr-field
 cmr-field-nametransaction/cmr-field-name
 /cmr-field
 foreign-key-column-on-source/
 role-mapping
 

Re: Geronimo and Tivoli Access Manager (TAM)

2006-01-27 Thread Cristian Roldan
Hi,   Some TAM-WAS-JACC docs.This is the WAS's infocenter .http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rsec_jacctroubles.html  WAS 6 Security Handbookhttp://www.redbooks.ibm.com/abstracts/sg246316.html?Open  ByeDavid Jencks [EMAIL PROTECTED] escribió:  On Jan 27, 2006, at 3:38 AM, Cristian Roldan wrote:Hi,Should not be to difficult to create one though.Do you mean coding a JAAS module ?But my question ar:  Does geronimo support JACC ? if so can I use the Geronimo's JACC implementation to integrate with TAM ?Bye  Geronimo supports JACC, but at the moment you can't really use anything but Geronimo's JACC implementation. I'm going to be looking at making this pluggable very soon.Can you point to any documents indicating how TAM relates to JACC? The only JACC implementation I have seen is ours so seeing what other people get from the spec would be very useful :-)thanks  david jencksNicholas Irving [EMAIL PROTECTED]escribió:  Hi,  I was not aware of a TAI available for Geronimo, but then again I was not aware of JACC in WebSphere 6. Should not be to difficult to create one though.NIrvingFrom: Cristian Roldan [mailto:[EMAIL PROTECTED]] Sent: Friday, 27 January 2006 3:14 AMTo: user@geronimo.apache.orgSubject: Geronimo and Tivoli Access Manager (TAM)  Hi All, Does someone configure Geronimo and TAM ?Is Geronimo's JACC interfacemature enough ? Can I use Geronimo's JACC to integrate with TAM ? Any experience ?Thanks!!!1GB gratis, Antivirus y
 AntispamCorreo Yahoo!, el mejor correo web del mundoAbrí tu cuenta aquí  --No virus found in this incoming message.Checked by AVG Free Edition.Version: 7.1.375 / Virus Database: 267.14.23/240 - Release Date: 25/01/2006  --No virus found in this outgoing message.Checked by AVG Free Edition.Version: 7.1.375 / Virus Database: 267.14.23/242 - Release Date: 26/01/20061GB gratis, Antivirus y AntispamCorreo Yahoo!, el mejor correo web del mundoAbrí tu cuenta aquí  __Correo Yahoo!Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

Re: Clustering Overview - 10.000 feet...

2006-01-27 Thread Hernan Cunico

Hi Jules,
I took the liberty to do some very basic formating to your doc and put it in confluence already (I 
hope you won't mind :) )


Here is the link to the *Geronimo Clustering* doc:

http://opensource2.atlassian.com/confluence/oss/display/GERONIMO/Clustering

If you are OK with it I could do some additional formatting and editing to match it to the rest of 
the documentation.


Cheers!
Hernan

Jules Gosnell wrote:
Rather than wait for resolution as to where exactly this document should 
live, I thought I would put this out here before it fossilises on my 
disc, so that people can get on with giving input.


This document is intended to bring together the various threads on 
clustering into a skeleton which we can begin to flesh out. Thus is is 
very incomplete... Please don't take offence at ommissions, mistakes, 
gaps in my understanding, or statement of the obvious - this is just the 
first broad brushstrokes, as evolved by the various clustering 
discussions that have happened recently, drawn into a single, slightly 
more orderly document - everything can change...


Until it finds a permanent home, I am happy to look after it and 
endeavour to keep it up to date with any new threads. if you have a 
particular change that you would like made, please let me know and I 
will ensure that it gets in.


I hope this will give birth to a few more threads to fill in sparse 
areas. Then we can hooks refs to this back into the doc and continue 
forward



Jules





Geronimo Clustering Overview - 10,000 feet...


Clustering is one of the key features that distinguishes an enterprise
JEE implementation from the rest of the pack. As such it is an
important requirement for Apache Geronimo.

By using clustering technology to provide a scalable and highly
available platform for JEE deployment, Apache Geronimo will be able to
compete on equal terms with existing commercial offerings.

This document will begin the task of :

- enumerating clustering requirements in Geronimo's tiers
- abstracting out commonality from these
- cataloguing software available to us that may be used to implement them
- suggesting a clustering architecture

A 'Cluster' is an architecture that achieves scalability and high
availability through the arrangement of multiple smaller, cheaper,
less reliable, resources, rather than single large, expensive,
extremely reliable ones.

Scalability is ensured by decoupling dependencies on shared resources
so that related tasks may be run concurrently on many machines (nodes)
in the cluster without interfering with each other. If your
architecture achieves this, you can scale to service more users by
just adding more nodes.

High Availability is achieved through redundancy. If one less-reliable
node fails, you fail-over to the next. In this way, the availability
of your system becomes not the sum, but the product of the
availability of its constituent nodes.

The presence of State in a cluster, frustrates the achievement of both
of these goals, through being a point of shared contention (many tasks
may need to read/write the same piece of state at the same time) and
a point of failure (if state is held in a fragile resource
e.g. memory, that is lost, then so is the state i,e, it is no longer
available).

Partitioning state can help restore scalability and making and
maintaining multiple copies of state (replication) can be used to
circumvent contention issues. Both solutions lead to further smaller
problems such as ensuring that processes are run in the same partition
as their state and ensuring consistancy of view across multiple copies
of state etc.Other solutions and further problems abound.

The number of different uses of state within a cluster precludes the
possibility of a single effective solution. So we need to devise
solutions for each usecase within Geronimo.

We will enumerate and examine these usecases.


Web
---

URL: http://java.sun.com/products/servlet/download.html#specs
Interest Group: Jules Gosnell, Jan Bartel, Jeff Genender, David Jencks,...

Clustering in the web-tier has two points of implementation :

The HTTP Load Balancer:
- our solution should work with any load-balancer
- we can expect the LB to support some form of affinity (sticky or persistant 
sessions).


The HttpSession:
- large numbers of potentially large objects (more data in the tier than can 
comfortably be held in one node) - needs partitioned cache
- typically frequently written
- typically frequently read
- typically a single consumer/client
- transactionless
- only one copy of an HttpSession may be 'active' at any one time
- multi-threaded
- pessimistic
- suggested impl - WADI


N.B.: Some other solutions allow the clustering of more than just the
HttpSession. The spec only requires that data stored in the
HttpSession is distributable.

Dev Threads
WADI and Network Partitions: