예제 #1
0
        public void TestLRUCache25k()
        {
            ConfigurationDBRef configDB = GetDefaultConfig();

            configDB.LRUCache = 100;
            TryCache(configDB, 7000, 25000, false);
        }
예제 #2
0
        public void TestExpireCache25k()
        {
            ConfigurationDBRef configDB = GetDefaultConfig();

            configDB.SetExpiryTimeCache(2, 2);
            TryCache(configDB, 7000, 25000, false);
        }
        public void TestDBCP()
        {
            var props = new Properties();

            props.Put("driverClassName", SupportDatabaseService.DRIVER);
            props.Put("url", SupportDatabaseService.FULLURL);
            props.Put("username", SupportDatabaseService.DBUSER);
            props.Put("password", SupportDatabaseService.DBPWD);

            var configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            configDB.SetDataSourceFactory(props, typeof(SupportDataSourceFactory).Name);
            configDB.ConnectionLifecycle = ConnectionLifecycleEnum.POOLED;
            configDB.LRUCache            = 100;

            var configuration = SupportConfigFactory.GetConfiguration();

            configuration.AddDatabaseReference("MyDB", configDB);

            _epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            _epService.Initialize();
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.StartTest(_epService, this.GetType(), this.GetType().FullName);
            }

            RunAssertion();
        }
예제 #4
0
        public static ConfigurationDBRef CreateDefaultConfig(Properties properties = null)
        {
            var configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(DbDriverFactoryDefault, properties);
            return(configDB);
        }
예제 #5
0
        public void TestExpireRandomKeys()
        {
            ConfigurationDBRef configDB = GetDefaultConfig();

            configDB.SetExpiryTimeCache(1, 1);
            TryCache(configDB, 7000, 25000, true);
        }
예제 #6
0
        public void ManualHasMetaSQLIntParamLowercase()
        {
            ConfigurationDBRef dbconfig = ConfigOracle;

            dbconfig.ColumnChangeCase = ConfigurationDBRef.ColumnChangeCaseEnum.LOWERCASE;
            Configuration configuration = GetConfig(dbconfig);

            epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            epService.Initialize();

            string sql = "select mydouble from " + TABLE_NAME + " where ${intPrimitive} = myint'" +
                         "metadatasql 'select mydouble from " + TABLE_NAME + "'";
            string stmtText = "select mydouble from " +
                              " sql:MyDB ['" + sql + "] as s0," +
                              typeof(SupportBean).Name + "#length(100) as s1";

            EPStatement statement = epService.EPAdministrator.CreateEPL(stmtText);

            listener = new SupportUpdateListener();
            statement.AddListener(listener);

            Assert.AreEqual(typeof(BigDecimal), statement.EventType.GetPropertyType("mydouble"));

            SendSupportBeanEvent(10);
            BigDecimal result = (BigDecimal)listener.AssertOneGetNewAndReset().Get("mydouble");

            Assert.AreEqual(12, Math.Round(result.DoubleValue() * 10d));

            SendSupportBeanEvent(80);
            result = (BigDecimal)listener.AssertOneGetNewAndReset().Get("mydouble");
            Assert.AreEqual(82, Math.Round(result.DoubleValue() * 10d));
        }
예제 #7
0
        public void ManualHasMetaSQLStringParam()
        {
            ConfigurationDBRef dbconfig      = ConfigOracle;
            Configuration      configuration = GetConfig(dbconfig);

            epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            epService.Initialize();

            string table = CATALOG + ".\"" + TABLE + "\"";
            string sql   = "select myint from " + table + " where ${string} = myvarchar'" +
                           "metadatasql 'select myint from " + table + "'";
            string stmtText = "select MYINT from " +
                              " sql:MyDB ['" + sql + "] as s0," +
                              typeof(SupportBean).Name + "#length(100) as s1";

            EPStatement statement = epService.EPAdministrator.CreateEPL(stmtText);

            listener = new SupportUpdateListener();
            statement.AddListener(listener);

            Assert.AreEqual(typeof(BigDecimal), statement.EventType.GetPropertyType("MYINT"));

            SendSupportBeanEvent("A");
            EventBean theEvent = listener.AssertOneGetNewAndReset();

            Assert.AreEqual(new BigDecimal(10), theEvent.Get("MYINT"));

            SendSupportBeanEvent("H");
            theEvent = listener.AssertOneGetNewAndReset();
            Assert.AreEqual(new BigDecimal(80), theEvent.Get("MYINT"));
        }
예제 #8
0
        public void TestExpireCacheNoPurge()
        {
            ConfigurationDBRef configDB = GetDefaultConfig();

            configDB.SetExpiryTimeCache(1.0d, double.MaxValue);
            TryCache(configDB, 5000, 1000, false);
        }
예제 #9
0
        public void SetUp()
        {
            _container = SupportContainer.Reset();

            var configs = new Dictionary <String, ConfigurationDBRef>();

            var config = new ConfigurationDBRef();

            config.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            configs["name1"] = config;

            config = new ConfigurationDBRef();
            config.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative, new Properties());
            //config.SetDataSourceConnection("context", new Properties());
            config.LRUCache  = 10000;
            configs["name2"] = config;

            config = new ConfigurationDBRef();
            config.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative, new Properties());
            config.SetExpiryTimeCache(1, 3);
            configs["name3"] = config;

            SchedulingService schedulingService = new SchedulingServiceImpl(
                new TimeSourceServiceImpl(), _container.Resolve <ILockManager>());

            _databaseServiceImpl = new DatabaseConfigServiceImpl(
                configs, schedulingService, new ScheduleBucket(1),
                SupportEngineImportServiceFactory.Make(_container));
        }
예제 #10
0
        public void ManualTypeMapped()
        {
            ConfigurationDBRef dbconfig = ConfigOracle;

            dbconfig.ColumnChangeCase = ConfigurationDBRef.ColumnChangeCaseEnum.LOWERCASE;
            dbconfig.AddSqlTypesBinding(2, "int");
            Configuration configuration = GetConfig(dbconfig);

            epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            epService.Initialize();

            string sql = "select myint from " + TABLE_NAME + " where ${intPrimitive} = myint'" +
                         "metadatasql 'select myint from " + TABLE_NAME + "'";
            string stmtText = "select myint from " +
                              " sql:MyDB ['" + sql + "] as s0," +
                              typeof(SupportBean).Name + "#length(100) as s1";

            EPStatement statement = epService.EPAdministrator.CreateEPL(stmtText);

            listener = new SupportUpdateListener();
            statement.AddListener(listener);

            Assert.AreEqual(typeof(int?), statement.EventType.GetPropertyType("myint"));

            SendSupportBeanEvent(10);
            Assert.AreEqual(10, listener.AssertOneGetNewAndReset().Get("myint"));

            SendSupportBeanEvent(80);
            Assert.AreEqual(80, listener.AssertOneGetNewAndReset().Get("myint"));
        }
예제 #11
0
        public override void Configure(Configuration configuration)
        {
            ConfigurationDBRef dbconfig = GetDBConfig();

            dbconfig.ColumnChangeCase = ConfigurationDBRef.ColumnChangeCaseEnum.LOWERCASE;
            //dbconfig.AddSqlTypesBinding(java.sql.Types.INTEGER, "string");
            configuration.AddDatabaseReference("MyDB", dbconfig);
        }
예제 #12
0
        public override void Configure(Configuration configuration)
        {
            ConfigurationDBRef dbconfig = GetDBConfig();

            dbconfig.ColumnChangeCase = ConfigurationDBRef.ColumnChangeCaseEnum.UPPERCASE;
            configuration.AddDatabaseReference("MyDB", dbconfig);
            configuration.EngineDefaults.Logging.IsEnableExecutionDebug = true;
        }
예제 #13
0
        private static ConfigurationDBRef GetDefaultConfig()
        {
            var config = new ConfigurationDBRef();

            config.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            config.ConnectionLifecycle = ConnectionLifecycleEnum.RETAIN;
            return(config);
        }
예제 #14
0
        private static Configuration GetConfig(ConfigurationDBRef configOracle)
        {
            var configuration = SupportConfigFactory.GetConfiguration();

            configuration.AddDatabaseReference("MyDB", configOracle);
            configuration.EngineDefaults.LoggingConfig.IsEnableExecutionDebug = true;

            return(configuration);
        }
예제 #15
0
        private static ConfigurationDBRef GetDBConfig()
        {
            var configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            configDB.ConnectionLifecycle = ConnectionLifecycleEnum.RETAIN;
            configDB.ConnectionCatalog   = "test";
            //configDB.ConnectionReadOnly(true);
            configDB.ConnectionAutoCommit = true;
            return(configDB);
        }
예제 #16
0
        private static void TryAndCloseConnection(ConnectionFactoryDesc connectionFactoryDesc)
        {
            var config = new ConfigurationDBRef {
                ConnectionFactoryDesc = connectionFactoryDesc
            };
            var connectionFactory = new DatabaseDriverConnFactory(
                (DbDriverFactoryConnection)config.ConnectionFactoryDesc, config.ConnectionSettings);
            var connection = connectionFactory.Driver.CreateConnection();

            TryAndCloseConnection(connection);
        }
예제 #17
0
        private ConfigurationDBRef GetConfigOracle()
        {
            ConfigurationDBRef configDB = new ConfigurationDBRef();

            configDB.SetDriverManagerConnection(DRIVER, FULLURL, DBUSER, DBPWD);
            configDB.ConnectionLifecycleEnum = ConfigurationDBRef.ConnectionLifecycleEnum.RETAIN;
            configDB.ConnectionCatalog       = CATALOG;
            configDB.ConnectionReadOnly      = true;
            configDB.ConnectionAutoCommit    = true;
            return(configDB);
        }
예제 #18
0
        public ColumnSettings GetQuerySetting(String databaseName)
        {
            ConfigurationDBRef config = _mapDatabaseRef.Get(databaseName);

            if (config == null)
            {
                throw new DatabaseConfigException("Cannot locate configuration information for database '" + databaseName + '\'');
            }
            return(new ColumnSettings(
                       config.MetadataRetrievalEnum,
                       config.ColumnChangeCase,
                       config.DataTypeMapping));
        }
예제 #19
0
        public void ManualPlaceholderWhere()
        {
            ConfigurationDBRef dbconfig = ConfigOracle;

            dbconfig.ColumnChangeCase = ConfigurationDBRef.ColumnChangeCaseEnum.LOWERCASE;
            Configuration configuration = GetConfig(dbconfig);

            epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            epService.Initialize();

            string sql = "select mydouble from " + TABLE_NAME + " ${$ESPER-SAMPLE-WHERE} where ${intPrimitive} = myint";

            Run(sql);
        }
예제 #20
0
        public void ManualNoMetaLexAnalysisGroup()
        {
            ConfigurationDBRef dbconfig = ConfigOracle;

            dbconfig.ColumnChangeCase = ConfigurationDBRef.ColumnChangeCaseEnum.LOWERCASE;
            Configuration configuration = GetConfig(dbconfig);

            epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            epService.Initialize();

            string sql = "select mydouble, sum(myint) from " + TABLE_NAME + " where ${intPrimitive} = myint group by mydouble";

            Run(sql);
        }
예제 #21
0
        static SupportDatabaseService()
        {
            var configuration = ConfigurationManager.GetSection("esper-configuration") as Configuration;

            var dbTable = configuration.DatabaseReferences;

            DbConfigReferenceNative = dbTable["db1"];
            DbConfigReferenceODBC   = dbTable["db2"];

            DbDriverFactoryNative = DbConfigReferenceNative
                                    .ConnectionFactoryDesc as DbDriverFactoryConnection;
            DbDriverFactoryODBC = DbConfigReferenceODBC
                                  .ConnectionFactoryDesc as DbDriverFactoryConnection;
        }
예제 #22
0
        public void SetUp()
        {
            ConfigurationDBRef configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);

            // Turn this cache setting off to turn off indexing since without cache there is no point in indexing.
            configDB.LRUCache = 100000;
            Configuration configuration = SupportConfigFactory.GetConfiguration();

            configuration.EngineDefaults.LoggingConfig.IsEnableQueryPlan = true;
            configuration.AddDatabaseReference("MyDB", configDB);

            _epServiceRetained = EPServiceProviderManager.GetProvider("TestDatabaseJoinRetained", configuration);
            _epServiceRetained.Initialize();
        }
예제 #23
0
        public void SetUp()
        {
            var configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            configDB.ConnectionLifecycle = ConnectionLifecycleEnum.RETAIN;
            configDB.ConnectionCatalog   = "test";
            //configDB.ConnectionReadOnly = true;
            configDB.ConnectionTransactionIsolation = System.Data.IsolationLevel.Serializable;
            configDB.ConnectionAutoCommit           = true;
            Configuration configuration = SupportConfigFactory.GetConfiguration();

            configuration.AddDatabaseReference("MyDB", configDB);

            _engine = EPServiceProviderManager.GetProvider("TestMTStmtDatabaseJoin", configuration);
        }
예제 #24
0
        public void SetUp()
        {
            Configuration configuration = SupportConfigFactory.GetConfiguration();

            configuration.EngineDefaults.LoggingConfig.IsEnableADO = true;
            configuration.EngineDefaults.ThreadingConfig.IsListenerDispatchPreserveOrder = false;

            var configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            configDB.ConnectionLifecycle = ConnectionLifecycleEnum.RETAIN;
            configuration.AddDatabaseReference("MyDB", configDB);

            _engine = EPServiceProviderManager.GetDefaultProvider(configuration);
            _engine.Initialize();
        }
예제 #25
0
        public void SetUp()
        {
            var configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            configDB.ConnectionLifecycle = ConnectionLifecycleEnum.RETAIN;

            Configuration configuration = new Configuration();

            configuration.AddDatabaseReference("MyDB", configDB);
            configuration.EngineDefaults.Threading.IsInternalTimerEnabled = false;
            configuration.EngineDefaults.ExceptionHandling.AddClass <MyExceptionHandlerFactory>();

            _epService = EPServiceProviderManager.GetProvider("TestDatabaseTimeout", configuration);
            _epService.Initialize();
        }
예제 #26
0
        static SupportDatabaseService()
        {
            var configurationFile = new FileInfo(ESPER_LOCAL_CONFIG_FILE);
            var configuration     = new Configuration(SupportContainer.Instance);

            configuration.Configure(configurationFile);

            var dbTable = configuration.DatabaseReferences;

            DbConfigReferenceNative = dbTable["db1"];
            DbConfigReferenceODBC   = dbTable["db2"];

            DbDriverFactoryNative = DbConfigReferenceNative
                                    .ConnectionFactoryDesc as DbDriverFactoryConnection;
            DbDriverFactoryODBC = DbConfigReferenceODBC
                                  .ConnectionFactoryDesc as DbDriverFactoryConnection;
        }
예제 #27
0
        private void TryCache(ConfigurationDBRef configDB, long assertMaximumTime, int numEvents, bool useRandomLookupKey)
        {
            Configuration configuration = SupportConfigFactory.GetConfiguration();

            configuration.AddDatabaseReference("MyDB", configDB);

            _epService = EPServiceProviderManager.GetProvider("TestDatabaseQueryResultCache", configuration);
            _epService.Initialize();

            long startTime = PerformanceObserver.MilliTime;

            TrySendEvents(_epService, numEvents, useRandomLookupKey);
            long endTime = PerformanceObserver.MilliTime;

            Log.Info(".tryCache " + configDB.DataCacheDesc + " delta=" + (endTime - startTime));
            Assert.IsTrue(endTime - startTime < assertMaximumTime);
        }
예제 #28
0
        public void TestPlaceholderWhere()
        {
            ConfigurationDBRef dbconfig      = GetDBConfig();
            Configuration      configuration = GetConfig(dbconfig);

            _epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            _epService.Initialize();

            const string sql = "select mydouble from mytesttable ${$ESPER-SAMPLE-WHERE} where ${IntPrimitive} = myint";

            Run(sql);

            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.EndTest();
            }
        }
예제 #29
0
        public void SetUp()
        {
            var configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);

            Configuration configuration = SupportConfigFactory.GetConfiguration();

            configuration.AddDatabaseReference("MyDB", configDB);

            _epService = EPServiceProviderManager.GetProvider("TestDatabaseJoinRetained", configuration);
            _epService.Initialize();
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.StartTest(_epService, GetType(), GetType().FullName);
            }
        }
예제 #30
0
        public void SetUp()
        {
            ConfigurationDBRef configDB = new ConfigurationDBRef();

            configDB.SetDatabaseDriver(SupportDatabaseService.DbDriverFactoryNative);
            configDB.ConnectionCatalog = "test";
            configDB.SetExpiryTimeCache(60, 120);

            Configuration configuration = SupportConfigFactory.GetConfiguration();

            configuration.EngineDefaults.LoggingConfig.IsEnableQueryPlan = true;
            configuration.AddDatabaseReference("MyDB", configDB);

            _epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            _epService.Initialize();
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.StartTest(_epService, this.GetType(), GetType().FullName);
            }
        }