summaryrefslogtreecommitdiff
path: root/java/demo/Database/library/Server.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2008-08-22 12:07:39 -0230
committerMatthew Newhook <matthew@zeroc.com>2008-08-22 12:07:39 -0230
commitba630ccacc8ee0b1735e263569107a5f309a3a2d (patch)
treeadbf1c264aae37bef60eb42350b203391ad3e2e1 /java/demo/Database/library/Server.java
parentMoved to using a dispatch interceptor model. (diff)
downloadice-ba630ccacc8ee0b1735e263569107a5f309a3a2d.tar.bz2
ice-ba630ccacc8ee0b1735e263569107a5f309a3a2d.tar.xz
ice-ba630ccacc8ee0b1735e263569107a5f309a3a2d.zip
use a library per session.
Diffstat (limited to 'java/demo/Database/library/Server.java')
-rw-r--r--java/demo/Database/library/Server.java59
1 files changed, 9 insertions, 50 deletions
diff --git a/java/demo/Database/library/Server.java b/java/demo/Database/library/Server.java
index b95bb76b56c..106ffa41df1 100644
--- a/java/demo/Database/library/Server.java
+++ b/java/demo/Database/library/Server.java
@@ -11,51 +11,8 @@ import Demo.*;
class LibraryServer extends Ice.Application
{
- static class BookDispatchInterceptorI extends Ice.DispatchInterceptor
- {
- BookDispatchInterceptorI(Ice.Logger logger, ConnectionPool pool, Ice.Object servant)
- {
- _logger = logger;
- _pool = pool;
- _servant = servant;
- }
-
- public Ice.DispatchStatus
- dispatch(Ice.Request request)
- {
- SQLRequestContext context = new SQLRequestContext(_logger, _pool);
- try
- {
- Ice.DispatchStatus status = _servant.ice_dispatch(request, null);
- context.destroyFromDispatch(status == Ice.DispatchStatus.DispatchOK);
- return status;
- }
- catch(JDBCException ex)
- {
- context.error("dispatch to " +
- request.getCurrent().id.category + "/" + request.getCurrent().id.name +
- " failed.", ex);
- context.destroyFromDispatch(false);
-
- // Translate the exception to UnknownException.
- Ice.UnknownException e = new Ice.UnknownException();
- ex.initCause(e);
- throw e;
- }
- }
-
- private Ice.Logger _logger;
- private ConnectionPool _pool;
- private Ice.Object _servant;
- }
-
static class LocatorI implements Ice.ServantLocator
{
- LocatorI(Ice.Logger logger, ConnectionPool pool, Ice.Object servant)
- {
- _servant = new BookDispatchInterceptorI(logger, pool, servant);
- }
-
public Ice.Object
locate(Ice.Current c, Ice.LocalObjectHolder cookie)
{
@@ -73,6 +30,11 @@ class LibraryServer extends Ice.Application
{
}
+ LocatorI(Ice.Object servant)
+ {
+ _servant = new DispatchInterceptorI(servant);
+ }
+
private Ice.Object _servant;
}
@@ -136,16 +98,13 @@ class LibraryServer extends Ice.Application
//
Ice.ObjectAdapter adapter = communicator().createObjectAdapter("SessionFactory");
- LocatorI locator = new LocatorI(logger, pool, new BookI());
- Ice.Object library = new LibraryI();
+ SQLRequestContext.initialize(logger, pool);
+ adapter.addServantLocator(new LocatorI(new BookI()), "book");
- adapter.add(new SessionFactoryI(logger, reaper, pool, library),
- communicator().stringToIdentity("SessionFactory"));
- adapter.add(new Glacier2SessionManagerI(logger, reaper, pool, library),
+ adapter.add(new SessionFactoryI(logger, reaper), communicator().stringToIdentity("SessionFactory"));
+ adapter.add(new Glacier2SessionManagerI(logger, reaper),
communicator().stringToIdentity("LibrarySessionManager"));
- adapter.addServantLocator(locator, "book");
-
//
// Everything ok, let's go.
//