Example #1
0
 ResultSet IOneCWebService2.ExecuteScript(
     string _connectionName,
     string _poolUserName,
     string _poolPassword,
     string _script
     )
 {
     try
     {
         if (ConnectionPool.Pools.ContainsKey(_connectionName))
         {
             AbstractAdapter adapter = ConnectionPool.Pools[_connectionName].GetConnection(_poolUserName, _poolPassword);
             try
             {
                 return(adapter.ExecuteScript(_script));
             }
             finally
             {
                 ConnectionPool.Pools[_connectionName].ReleaseConnection(adapter);
             }
         }
         else
         {
             throw new Exception("Connection with name '" + _connectionName + "' not found");
         }
     }
     catch (Exception _e)
     {
         SimpleLogger.DefaultLogger.Severe("Exception in ExecuteRequest: " + _e.ToString());
         ResultSet resultSet = new ResultSet();
         resultSet.Error = _e.ToString();
         return(resultSet);
     }
 }
        public void TestLoop()
        {
            ConnectionPool pool = new ConnectionPool();

            pool.Logger = new ConsoleLogger();

            pool.Parameters.Add(ConnectionPool.AdapterTypeParam, "OneCService2.V81Adapter");
            pool.Parameters.Add(ConnectionPool.NameParam, "TestName");
            pool.Parameters.Add(ConnectionPool.PoolSizeParam, "1");
            pool.Parameters.Add(ConnectionPool.PoolUserNameParam, "PoolUserName");
            pool.Parameters.Add(ConnectionPool.PoolPasswordParam, "PoolPassword");

            pool.Parameters.Add(V81Adapter.ModeParam, "File");
            pool.Parameters.Add(V81Adapter.FileParam, @"C:\Work\1C\Test");
            pool.Parameters.Add(V81Adapter.UserNameParam, "");
            pool.Parameters.Add(V81Adapter.PasswordParam, "");

            try
            {
                pool.Init();

                int loopCount = 1000000;

                for (int i = 0; i < loopCount; i++)
                {
                    AbstractAdapter adapter = pool.GetConnection("PoolUserName", "PoolPassword");

                    try
                    {
                        ResultSet r = adapter.ExecuteScript(
                            "с = Новый Структура(); с.Вставить(\"A\", Справочники.Номенклатура.НайтиПоКоду(1)); с.Вставить(\"B\", 2); результат=с;"
                            );
                        Console.WriteLine("Loop: " + i);
                        Thread.Sleep(50);
                    }
                    finally
                    {
                        pool.ReleaseConnection(adapter);
                    }
                }
            }
            finally
            {
                pool.Done();
            }
        }