You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by Laszlo Sinka <la...@humanvalueservices.hu> on 2009/08/04 14:54:45 UTC

3-tier, client synchronization, JavaGroups

Hi,

we try to run Cayenne(3.0m6) in 3-tier mode with client synchronization.

We set up a configuration to use cross-vm caching through JavaGroups (2.2.1)
(with standard configuration).
We have a simple object with a string attribute (ItemCategory, name).
We have a tomcat5.5 deployed with the default HessianServlet (Hessian
version: 3.1.6).
We have a client that connects to the server, like
        String myChatRoom = "1111";
        ClientConnection connection = new HessianConnection(
                "http://192.168.3.154:8081/HVS_CAYENNE_V3/HVS_DATA", "hvs",
"hvs",
                myChatRoom);
        DataChannel channel = new ClientChannel(connection);
        context = new CayenneContext(channel, true, true);

then the client fetches an object
        SelectQuery select = new SelectQuery(ItemCategory.class);
        category = (ItemCategory)
context.performQuery(select).iterator().next();

we have a simple gui, which can update the name property:
        category.setName(nameField.getText());
        context.commitChanges();
the server accepts the requests, changes the database and logs also the
following message:
2009-08-04 14:03:29,125 DEBUG http-8081-Processor23
org.apache.cayenne.access.DataRowStore - postSnapshotsChangeEvent:
[SnapshotEvent] source: org.apache.cayenne.access.DataRowStore@1265109,
modified 1 id(s)

but, when we run two clients (both having reference to the same object), and
one of them updates the object, the other client doesn't see the change, and
for
        System.out.println(category.getName());
prints the old value, which the object had by the start of the client.

We are using Eclipse(3.5) the client and server are in the same project,
using the same configuration files, classes, libraries, etc., running on
same machine.

What do we wrong? What else do we need?

p.s.: we have tried many configuration modes (tcp.xml, udp.xml)(different
client connection attributes)(different versions (JavaGroups: 2.2.1, 2.2.9,
2.7.0)(Cayenne: 2.0, 3.0m6))