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.DataRowStor..265109,
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))
This archive was generated by hypermail 2.0.0 : Tue Aug 04 2009 - 08:55:22 EDT