示例#1
0
        private ServerMessageDispatcherImpl FirstMessageDispatcherFor(ObjectServerImpl server
                                                                      )
        {
            IEnumerator dispatchers = server.IterateDispatchers();

            Assert.IsTrue(dispatchers.MoveNext());
            ServerMessageDispatcherImpl msgDispatcher = (ServerMessageDispatcherImpl)dispatchers
                                                        .Current;

            return(msgDispatcher);
        }
示例#2
0
        /// <exception cref="System.Exception"></exception>
        public virtual void Test()
        {
            ObjectServerImpl server = (ObjectServerImpl)Db4oClientServer.OpenServer(TempFile(
                                                                                        ), Db4oClientServer.ArbitraryPort);
            Lock4 Lock = new Lock4();

            server.ClientDisconnected += new System.EventHandler <Db4objects.Db4o.Events.StringEventArgs>
                                             (new _IEventListener4_39(Lock).OnEvent);
            server.GrantAccess(User, Password);
            IObjectContainer            client        = OpenClient(server.Port());
            ServerMessageDispatcherImpl msgDispatcher = FirstMessageDispatcherFor(server);
            Transaction            transaction        = msgDispatcher.Transaction();
            ITransactionalIdSystem idSystem           = transaction.IdSystem();
            int prefetchedID = idSystem.PrefetchID();

            Assert.IsGreater(0, prefetchedID);
            Lock.Run(new _IClosure4_58(client, Lock, idSystem, prefetchedID));
            // This wont work with the PointerBasedIdSystem
            server.Close();
        }
示例#3
0
        /// <exception cref="System.Exception"></exception>
        public virtual void Test()
        {
            IExtObjectContainer db         = Fixture().Db();
            ObjectServerImpl    serverImpl = (ObjectServerImpl)ClientServerFixture().Server();

            try
            {
                IEnumerator iter = serverImpl.IterateDispatchers();
                iter.MoveNext();
                ServerMessageDispatcherImpl serverDispatcher = (ServerMessageDispatcherImpl)iter.
                                                               Current;
                serverDispatcher.Socket().Close();
                Runtime4.Sleep(1000);
                Assert.Expect(typeof(DatabaseClosedException), new _ICodeBlock_30(db));
                Assert.IsTrue(db.IsClosed());
            }
            finally
            {
                serverImpl.Close();
            }
        }