You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by Andrus Adamchik <an...@objectstyle.org> on 2009/07/14 08:35:56 UTC

Re: Cayenne 2.0.4 ROP + shared session

Hi Emanuele,

I assume you meant to send this to user at cayenne dot apache dot org,  
not user-owner at ...

Resending...

Andrus

On Jul 14, 2009, at 5:26 AM, Emanuele Maiarelli wrote:

> Hello,
>
>     I'm working on an java swing application, using ROP  
> (configuration is: Tomcat 6, Cayenne 2.0.4 with mysql).
>
>    Since now everything worked perfectly, the swing application  
> ( and all javabeans, that i created) works as expected.
>
>    When i started plugging more that one client to the ORM, i start  
> having some problems with caching, more precisely
>
>     considering the following entity:
>     <obj-entity name="GcUtenti" className="entities.GcUtenti"  
> clientClassName="Client.GcUtenti" dbEntityName="GC_UTENTI">
>         <obj-attribute name="gcConsulten" type="java.lang.Boolean"  
> db-attribute-path="GC_CONSULTEN"/>
>         <obj-attribute name="gcCostoRisorsa" type="java.lang.Double"  
> db-attribute-path="GC_COSTO_RISORSA"/>
>         <obj-attribute name="gcEmail" type="java.lang.String" db- 
> attribute-path="GC_EMAIL"/>
>         <obj-attribute name="gcFax" type="java.lang.String" db- 
> attribute-path="GC_FAX"/>
>         <obj-attribute name="gcFornadmin" type="java.lang.Boolean"  
> db-attribute-path="GC_FORNADMIN"/>
>         <obj-attribute name="gcIsadmin" type="java.lang.Boolean" db- 
> attribute-path="GC_ISADMIN"/>
>         <obj-attribute name="gcMob" type="java.lang.String" db- 
> attribute-path="GC_MOB"/>
>         <obj-attribute name="gcNome" type="java.lang.String" db- 
> attribute-path="GC_NOME"/>
>         <obj-attribute name="gcPassword" type="java.lang.String" db- 
> attribute-path="GC_PASSWORD"/>
>         <obj-attribute name="gcTel" type="java.lang.String" db- 
> attribute-path="GC_TEL"/>
>         <obj-attribute name="gcUsername" type="java.lang.String" db- 
> attribute-path="GC_USERNAME"/>
>     </obj-entity>
>
> with the follwing relationships
>     <db-relationship name="commesseAssegnateEst" source="GC_UTENTI"  
> target="COMMESSE" toMany="true">
>         <db-attribute-pair source="GC_PK" target="GCCOM_RES_EST_FK"/>
>     </db-relationship>
>     <db-relationship name="commesseReposabileDi" source="GC_UTENTI"  
> target="COMMESSE" toMany="true">
>         <db-attribute-pair source="GC_PK" target="GCCOM_RES_INT_FK"/>
>     </db-relationship>
>     <db-relationship name="gcOreAccettate" source="GC_UTENTI"  
> target="GC_ORE" toMany="true">
>         <db-attribute-pair source="GC_PK" target="GCO_ACC_USER_FK"/>
>     </db-relationship>
>     <db-relationship name="gcOreLavorate" source="GC_UTENTI"  
> target="GC_ORE" toMany="true">
>         <db-attribute-pair source="GC_PK" target="GCO_RISORSA_FK"/>
>     </db-relationship>
>     <db-relationship name="gcOreVerificateEst" source="GC_UTENTI"  
> target="GC_ORE" toMany="true">
>         <db-attribute-pair source="GC_PK" target="GCO_VER_USER_FK"/>
>     </db-relationship>
>     <db-relationship name="toGcForn" source="GC_UTENTI"  
> target="GC_FORN" toMany="false">
>         <db-attribute-pair source="GC_FORN_FK" target="GCF_PK"/>
>     </db-relationship>
>     <db-relationship name="toScaglioni" source="GC_UTENTI"  
> target="SCAGLIONI" toMany="false">
>         <db-attribute-pair source="GC_SCA_FK" target="SCA_PK"/>
>     </db-relationship>
>     <db-relationship name="toTipOper" source="GC_UTENTI"  
> target="TIP_OPER" toMany="false">
>         <db-attribute-pair source="GC_TIPOP_FK" target="TIO_PK"/>
>     </db-relationship>
>
>
>     if a client alter and commpit  one relation, for example  
> "toGcForn", the other client isn't unware of that change, by  
> otherway changing gcNome the other clients get aware.
>
>    Currently im not using any kind of Shared_session, its that dued  
> by this fact?
>
>    Btw i tried to configure XMPP for managing shadred_session. I saw  
> that ther are other options like JGroups, but there no kind of  
> documentation about usign them with Cayenne.
>
>   I configured openfire 3.6.4 and i added on both java client and to  
> webapplication XMPP clients (smack-2.2.1.jar and smackx-2.2.1.jar),  
> and configured the XMPP servlet on the web.xml:
>  <init-param>
>       <param-name>cayenne.RemoteService.EventBridge.factory</param- 
> name>
>       <param-value>org.apache.cayenne.event.XMPPBridgeFactory</param- 
> value>
>    </init-param>
>    <init-param>
>       <param-name>cayenne.XMPPBridge.xmppHost</param-name>
>       <param-value>127.0.0.1</param-value>
>    </init-param>
>    <init-param>
>       <param-name>cayenne.XMPPBridge.xmppPort</param-name>
>       <param-value>5222</param-value>
>    </init-param>
>    <init-param>
>       <param-name>cayenne.XMPPBridge.xmppChatService</param-name>
>       <param-value>conference</param-value>
>    </init-param>
>
> After doing that cayenne starts throwing exceptions on server side
>
> org.apache.cayenne.CayenneRuntimeException: [v.2.0.4 October 8 2007]  
> Error starting EventBridge org.apache.cayenne.event.XMPPBridge@f6438d
>         at  
> org 
> .apache 
> .cayenne 
> .remote.ClientChannel.setupRemoteChannelListener(ClientChannel.java: 
> 228)
>         at  
> org.apache.cayenne.remote.ClientChannel.<init>(ClientChannel.java:79)
>         at  
> org.apache.cayenne.remote.ClientChannel.<init>(ClientChannel.java:69)
>         at  
> org.apache.cayenne.remote.ClientChannel.<init>(ClientChannel.java:65)
>         at System.Instance.Login(Instance.java:53)
>         .....................................
>         at  
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
>         at java.awt.EventDispatchThread.run(EventDispatchThread.java: 
> 122)
> Caused by: org.apache.cayenne.CayenneRuntimeException: [v.2.0.4  
> October 8 2007] Error connecting to XMPP ServerXMPPError connecting  
> to 127.0.0.1:5222.
>         at  
> org.apache.cayenne.event.XMPPBridge.startupExternal(XMPPBridge.java: 
> 180)
>         at  
> org.apache.cayenne.event.EventBridge.startup(EventBridge.java:275)
>         at  
> org 
> .apache 
> .cayenne 
> .remote.ClientChannel.setupRemoteChannelListener(ClientChannel.java: 
> 225)
>         ... 38 more
>
>
> Looking at the error its seems to be caused by the XMPP server not  
> working, but i checked and it works. Looking with tcpdump i didn't  
> see any incoming packet while Cayenne tries to connect to it.
>
> Im doing something wrong?
>
> Maybe some tomcat security feature blocking it?
>
> Another question, to enable shared sessions via XMPP, something  
> other that what i configured must to be done? I mean nothing else  
> (than the parameters in web.xml) has to be specified to clients?
>
>
> Thanks in advice,
>
> Emanuele
>
>
>