⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.cpp

📁 ICE-3.2 一个开源的中间件
💻 CPP
字号:
// **********************************************************************//// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.//// This copy of Ice is licensed to you under the terms described in the// ICE_LICENSE file included in this distribution.//// **********************************************************************#include <DeptFactoryI.h>#include <Ice/Application.h>#include <OCCIServantLocator.h>#include <occi.h>#include <DbTypesMap.h>using namespace std;using namespace oracle::occi;class HRServer : public Ice::Application{public:    virtual int run(int, char*[]);};intmain(int argc, char* argv[]){    HRServer app;    return app.main(argc, argv, "config.server");}intHRServer::run(int argc, char* argv[]){    const string username = communicator()->getProperties()->getPropertyWithDefault("Oracle.Username", "scott");    const string password = communicator()->getProperties()->getPropertyWithDefault("Oracle.Password", "password");    const string connectString = communicator()->getProperties()->getProperty("Oracle.ConnectString");    //    // We use a single servant locator and a single category for all Emp and Dept objects    //    const string category = "OCCI";     Environment* env = 0;    StatelessConnectionPool* pool = 0;    try    {        env = Environment::createEnvironment(Environment::Mode(Environment::THREADED_MUTEXED | Environment::OBJECT));        DbTypesMap(env);                pool = env->createStatelessConnectionPool(username, password, connectString, 5, 2, 1,                                                   StatelessConnectionPool::HOMOGENEOUS);        Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("HR");                DeptFactoryIPtr factory = new DeptFactoryI(env, pool, category);        adapter->addServantLocator(new OCCIServantLocator(factory), category);        adapter->add(factory, communicator()->stringToIdentity("DeptFactory"));                adapter->activate();        communicator()->waitForShutdown();    }    catch(...)    {        if(pool != 0)        {            env->terminateStatelessConnectionPool(pool);        }        if(env != 0)        {            Environment::terminateEnvironment(env);        }        throw;    }    if(pool != 0)    {        env->terminateStatelessConnectionPool(pool);    }    if(env != 0)    {        Environment::terminateEnvironment(env);    }    return EXIT_SUCCESS;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -