clicache/integration-test/ThinClientQueryTestsN.cs (1,479 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using System.Collections.Generic; using System.Threading; namespace Apache.Geode.Client.UnitTests { using NUnit.Framework; using Apache.Geode.DUnitFramework; using Apache.Geode.Client.Tests; using Apache.Geode.Client; using QueryStatics = Apache.Geode.Client.Tests.QueryStatics; using QueryCategory = Apache.Geode.Client.Tests.QueryCategory; using QueryStrings = Apache.Geode.Client.Tests.QueryStrings; [Ignore("flaky")] [TestFixture] [Category("group1")] [Category("unicast_only")] [Category("generics")] public class ThinClientQueryTests : ThinClientRegionSteps { #region Private members private UnitProcess m_client1; private UnitProcess m_client2; private static string[] QueryRegionNames = { "Portfolios", "Positions", "Portfolios2", "Portfolios3" }; private static string QERegionName = "Portfolios"; #endregion protected override ClientBase[] GetClients() { m_client1 = new UnitProcess(); m_client2 = new UnitProcess(); return new ClientBase[] { m_client1, m_client2 }; } [TestFixtureSetUp] public override void InitTests() { base.InitTests(); } [TearDown] public override void EndTest() { m_client1.Call(Close); m_client2.Call(Close); CacheHelper.StopJavaServers(); base.EndTest(); } [SetUp] public override void InitTest() { m_client1.Call(InitClient); m_client2.Call(InitClient); } #region Functions invoked by the tests public void InitClient() { CacheHelper.Init(); CacheHelper.DCache.TypeRegistry.RegisterType(Portfolio.CreateDeserializable, 8); CacheHelper.DCache.TypeRegistry.RegisterType(Position.CreateDeserializable, 7); CacheHelper.DCache.TypeRegistry.RegisterPdxType(PortfolioPdx.CreateDeserializable); CacheHelper.DCache.TypeRegistry.RegisterPdxType(PositionPdx.CreateDeserializable); } public void StepOneQE(string locators, bool isPdx) { m_isPdx = isPdx; try { var poolFail = CacheHelper.DCache.GetPoolManager().CreateFactory().Create("_TESTFAILPOOL_"); var qsFail = poolFail.GetQueryService(); var qryFail = qsFail.NewQuery<object>("select distinct * from /" + QERegionName); var resultsFail = qryFail.Execute(); Assert.Fail("Since no endpoints defined, so exception expected"); } catch (IllegalStateException ex) { Util.Log("Got expected exception: {0}", ex); } catch (Exception e) { Util.Log("Caught unexpected exception: {0}", e); throw e; } CacheHelper.CreateTCRegion_Pool<object, object>(QERegionName, true, true, null, locators, "__TESTPOOL1_", true); IRegion<object, object> region = CacheHelper.GetVerifyRegion<object, object>(QERegionName); if (!m_isPdx) { Portfolio p1 = new Portfolio(1, 100); Portfolio p2 = new Portfolio(2, 100); Portfolio p3 = new Portfolio(3, 100); Portfolio p4 = new Portfolio(4, 100); region["1"] = p1; region["2"] = p2; region["3"] = p3; region["4"] = p4; } else { PortfolioPdx p1 = new PortfolioPdx(1, 100); PortfolioPdx p2 = new PortfolioPdx(2, 100); PortfolioPdx p3 = new PortfolioPdx(3, 100); PortfolioPdx p4 = new PortfolioPdx(4, 100); region["1"] = p1; region["2"] = p2; region["3"] = p3; region["4"] = p4; } var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Query<object> qry = qs.NewQuery<object>("select distinct * from /" + QERegionName); ISelectResults<object> results = qry.Execute(); var count = results.Size; Assert.AreEqual(4, count, "Expected 4 as number of portfolio objects."); // Bring down the region region.GetLocalView().DestroyRegion(); } public void StepTwoQE() { var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Util.Log("Going to execute the query"); Query<object> qry = qs.NewQuery<object>("select distinct * from /" + QERegionName); ISelectResults<object> results = qry.Execute(); var count = results.Size; Assert.AreEqual(4, count, "Expected 4 as number of portfolio objects."); } public void StepOne(string locators, bool isPdx) { m_isPdx = isPdx; CacheHelper.CreateTCRegion_Pool<object, object>(QueryRegionNames[0], true, true, null, locators, "__TESTPOOL1_", true); CacheHelper.CreateTCRegion_Pool<object, object>(QueryRegionNames[1], true, true, null, locators, "__TESTPOOL1_", true); CacheHelper.CreateTCRegion_Pool<object, object>(QueryRegionNames[2], true, true, null, locators, "__TESTPOOL1_", true); CacheHelper.CreateTCRegion_Pool<object, object>(QueryRegionNames[3], true, true, null, locators, "__TESTPOOL1_", true); IRegion<object, object> region = CacheHelper.GetRegion<object, object>(QueryRegionNames[0]); Apache.Geode.Client.RegionAttributes<object, object> regattrs = region.Attributes; region.CreateSubRegion(QueryRegionNames[1], regattrs); } public void StepTwo(bool isPdx) { m_isPdx = isPdx; IRegion<object, object> region0 = CacheHelper.GetRegion<object, object>(QueryRegionNames[0]); IRegion<object, object> subRegion0 = (IRegion<object, object>)region0.GetSubRegion(QueryRegionNames[1]); IRegion<object, object> region1 = CacheHelper.GetRegion<object, object>(QueryRegionNames[1]); IRegion<object, object> region2 = CacheHelper.GetRegion<object, object>(QueryRegionNames[2]); IRegion<object, object> region3 = CacheHelper.GetRegion<object, object>(QueryRegionNames[3]); QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); Util.Log("SetSize {0}, NumSets {1}.", qh.PortfolioSetSize, qh.PortfolioNumSets); if (!m_isPdx) { qh.PopulatePortfolioData(region0, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePositionData(subRegion0, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePositionData(region1, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePortfolioData(region2, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePortfolioData(region3, qh.PortfolioSetSize, qh.PortfolioNumSets); } else { qh.PopulatePortfolioPdxData(region0, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePositionPdxData(subRegion0, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePositionPdxData(region1, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePortfolioPdxData(region2, qh.PortfolioSetSize, qh.PortfolioNumSets); qh.PopulatePortfolioPdxData(region3, qh.PortfolioSetSize, qh.PortfolioNumSets); } } public void StepTwoQT() { IRegion<object, object> region0 = CacheHelper.GetRegion<object, object>(QueryRegionNames[0]); IRegion<object, object> subRegion0 = region0.GetSubRegion(QueryRegionNames[1]); QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); if (!m_isPdx) { qh.PopulatePortfolioData(region0, 100, 20, 100); qh.PopulatePositionData(subRegion0, 100, 20); } else { qh.PopulatePortfolioPdxData(region0, 100, 20, 100); qh.PopulatePositionPdxData(subRegion0, 100, 20); } } public void StepThreeRS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.ResultSetQueries) { if (qrystr.Category == QueryCategory.Unsupported) { Util.Log("Skipping query index {0} because it is unsupported.", qryIdx); qryIdx++; continue; } if (m_isPdx == true) { if (qryIdx == 2 || qryIdx == 3 || qryIdx == 4) { Util.Log("Skipping query index {0} for Pdx because it is function type.", qryIdx); qryIdx++; continue; } } Util.Log("Evaluating query index {0}. Query string {1}", qryIdx, qrystr.Query); Query<object> query = qs.NewQuery<object>(qrystr.Query); ISelectResults<object> results = query.Execute(); int expectedRowCount = qh.IsExpectedRowsConstantRS(qryIdx) ? QueryStatics.ResultSetRowCounts[qryIdx] : QueryStatics.ResultSetRowCounts[qryIdx] * qh.PortfolioNumSets; if (!qh.VerifyRS(results, expectedRowCount)) { ErrorOccurred = true; Util.Log("Query verify failed for query index {0}.", qryIdx); qryIdx++; continue; } ResultSet<object> rs = results as ResultSet<object>; foreach (object item in rs) { if (!m_isPdx) { Portfolio port = item as Portfolio; if (port == null) { Position pos = item as Position; if (pos == null) { string cs = item.ToString(); if (cs == null) { Util.Log("Query got other/unknown object."); } else { Util.Log("Query got string : {0}.", cs); } } else { Util.Log("Query got Position object with secId {0}, shares {1}.", pos.SecId, pos.SharesOutstanding); } } else { Util.Log("Query got Portfolio object with ID {0}, pkid {1}.", port.ID, port.Pkid); } } else { PortfolioPdx port = item as PortfolioPdx; if (port == null) { PositionPdx pos = item as PositionPdx; if (pos == null) { string cs = item.ToString(); if (cs == null) { Util.Log("Query got other/unknown object."); } else { Util.Log("Query got string : {0}.", cs); } } else { Util.Log("Query got Position object with secId {0}, shares {1}.", pos.secId, pos.getSharesOutstanding); } } else { Util.Log("Query got Portfolio object with ID {0}, pkid {1}.", port.ID, port.Pkid); } } } qryIdx++; } Assert.IsFalse(ErrorOccurred, "One or more query validation errors occurred."); } public void StepThreePQRS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings paramqrystr in QueryStatics.ResultSetParamQueries) { if (paramqrystr.Category == QueryCategory.Unsupported) { Util.Log("Skipping query index {0} because it is unsupported.", qryIdx); qryIdx++; continue; } Util.Log("Evaluating query index {0}. {1}", qryIdx, paramqrystr.Query); Query<object> query = qs.NewQuery<object>(paramqrystr.Query); //Populate the parameter list (paramList) for the query. object[] paramList = new object[QueryStatics.NoOfQueryParam[qryIdx]]; int numVal = 0; for (int ind = 0; ind < QueryStatics.NoOfQueryParam[qryIdx]; ind++) { //Util.Log("NIL::PQRS:: QueryStatics.QueryParamSet[{0},{1}] = {2}", qryIdx, ind, QueryStatics.QueryParamSet[qryIdx][ind]); try { numVal = Convert.ToInt32(QueryStatics.QueryParamSet[qryIdx][ind]); paramList[ind] = numVal; //Util.Log("NIL::PQRS::361 Interger Args:: paramList[0] = {1}", ind, paramList[ind]); } catch (FormatException) { //Console.WriteLine("Param string is not a sequence of digits."); paramList[ind] = (System.String)QueryStatics.QueryParamSet[qryIdx][ind]; //Util.Log("NIL::PQRS:: Interger Args:: routingObj[0] = {1}", ind, routingObj[ind].ToString()); } } ISelectResults<object> results = query.Execute(paramList); //Varify the result int expectedRowCount = qh.IsExpectedRowsConstantPQRS(qryIdx) ? QueryStatics.ResultSetPQRowCounts[qryIdx] : QueryStatics.ResultSetPQRowCounts[qryIdx] * qh.PortfolioNumSets; if (!qh.VerifyRS(results, expectedRowCount)) { ErrorOccurred = true; Util.Log("Query verify failed for query index {0}.", qryIdx); qryIdx++; continue; } ResultSet<object> rs = results as ResultSet<object>; foreach (object item in rs) { if (!m_isPdx) { Portfolio port = item as Portfolio; if (port == null) { Position pos = item as Position; if (pos == null) { string cs = item as string; if (cs == null) { Util.Log("Query got other/unknown object."); } else { Util.Log("Query got string : {0}.", cs); } } else { Util.Log("Query got Position object with secId {0}, shares {1}.", pos.SecId, pos.SharesOutstanding); } } else { Util.Log("Query got Portfolio object with ID {0}, pkid {1}.", port.ID, port.Pkid); } } else { PortfolioPdx port = item as PortfolioPdx; if (port == null) { PositionPdx pos = item as PositionPdx; if (pos == null) { string cs = item as string; if (cs == null) { Util.Log("Query got other/unknown object."); } else { Util.Log("Query got string : {0}.", cs); } } else { Util.Log("Query got PositionPdx object with secId {0}, shares {1}.", pos.secId, pos.getSharesOutstanding); } } else { Util.Log("Query got PortfolioPdx object with ID {0}, pkid {1}.", port.ID, port.Pkid); } } } qryIdx++; } Assert.IsFalse(ErrorOccurred, "One or more query validation errors occurred."); } public void StepFourRS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.ResultSetQueries) { if (qrystr.Category != QueryCategory.Unsupported) { qryIdx++; continue; } Util.Log("Evaluating unsupported query index {0}.", qryIdx); Query<object> query = qs.NewQuery<object>(qrystr.Query); try { ISelectResults<object> results = query.Execute(); Util.Log("Query exception did not occur for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } catch (GeodeException) { // ok, exception expected, do nothing. qryIdx++; } catch (Exception) { Util.Log("Query unexpected exception occurred for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } } Assert.IsFalse(ErrorOccurred, "Query expected exceptions did not occur."); } public void StepFourPQRS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.ResultSetParamQueries) { if (qrystr.Category != QueryCategory.Unsupported) { qryIdx++; continue; } Util.Log("Evaluating unsupported query index {0}.", qryIdx); Query<object> query = qs.NewQuery<object>(qrystr.Query); object[] paramList = new object[QueryStatics.NoOfQueryParam[qryIdx]]; Int32 numVal = 0; for (Int32 ind = 0; ind < QueryStatics.NoOfQueryParam[qryIdx]; ind++) { //Util.Log("NIL::PQRS:: QueryStatics.QueryParamSet[{0},{1}] = {2}", qryIdx, ind, QueryStatics.QueryParamSet[qryIdx, ind]); try { numVal = Convert.ToInt32(QueryStatics.QueryParamSet[qryIdx][ind]); paramList[ind] = numVal; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind]); } catch (FormatException) { //Console.WriteLine("Param string is not a sequence of digits."); paramList[ind] = (System.String)QueryStatics.QueryParamSet[qryIdx][ind]; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind].ToString()); } } try { ISelectResults<object> results = query.Execute(paramList); Util.Log("Query exception did not occur for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } catch (GeodeException) { // ok, exception expected, do nothing. qryIdx++; } catch (Exception) { Util.Log("Query unexpected exception occurred for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } } Assert.IsFalse(ErrorOccurred, "Query expected exceptions did not occur."); } public void StepThreeSS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.StructSetQueries) { if (qrystr.Category == QueryCategory.Unsupported) { Util.Log("Skipping query index {0} because it is unsupported.", qryIdx); qryIdx++; continue; } if (m_isPdx == true) { if (qryIdx == 12 || qryIdx == 4 || qryIdx == 7 || qryIdx == 22 || qryIdx == 30 || qryIdx == 34) { Util.Log("Skipping query index {0} for pdx because it has function.", qryIdx); qryIdx++; continue; } } Util.Log("Evaluating query index {0}. {1}", qryIdx, qrystr.Query); Query<object> query = qs.NewQuery<object>(qrystr.Query); ISelectResults<object> results = query.Execute(); int expectedRowCount = qh.IsExpectedRowsConstantSS(qryIdx) ? QueryStatics.StructSetRowCounts[qryIdx] : QueryStatics.StructSetRowCounts[qryIdx] * qh.PortfolioNumSets; if (!qh.VerifySS(results, expectedRowCount, QueryStatics.StructSetFieldCounts[qryIdx])) { ErrorOccurred = true; Util.Log("Query verify failed for query index {0}.", qryIdx); qryIdx++; continue; } StructSet<object> ss = results as StructSet<object>; if (ss == null) { Util.Log("Zero records found for query index {0}, continuing.", qryIdx); qryIdx++; continue; } uint rows = 0; Int32 fields = 0; foreach (Struct si in ss) { rows++; fields = (Int32)si.Count; } Util.Log("Query index {0} has {1} rows and {2} fields.", qryIdx, rows, fields); qryIdx++; } Assert.IsFalse(ErrorOccurred, "One or more query validation errors occurred."); } public void StepThreePQSS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.StructSetParamQueries) { if (qrystr.Category == QueryCategory.Unsupported) { Util.Log("Skipping query index {0} because it is unsupported.", qryIdx); qryIdx++; continue; } Util.Log("Evaluating query index {0}. {1}", qryIdx, qrystr.Query); if (m_isPdx == true) { if (qryIdx == 16) { Util.Log("Skipping query index {0} for pdx because it has function.", qryIdx); qryIdx++; continue; } } Query<object> query = qs.NewQuery<object>(qrystr.Query); //Populate the param list, paramList for parameterized query object[] paramList = new object[QueryStatics.NoOfQueryParamSS[qryIdx]]; Int32 numVal = 0; for (Int32 ind = 0; ind < QueryStatics.NoOfQueryParamSS[qryIdx]; ind++) { //Util.Log("NIL::PQRS:: QueryStatics.QueryParamSetSS[{0},{1}] = {2}", qryIdx, ind, QueryStatics.QueryParamSetSS[qryIdx, ind]); try { numVal = Convert.ToInt32(QueryStatics.QueryParamSetSS[qryIdx][ind]); paramList[ind] = numVal; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind]); } catch (FormatException) { //Console.WriteLine("Param string is not a sequence of digits."); paramList[ind] = (System.String)QueryStatics.QueryParamSetSS[qryIdx][ind]; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind].ToString()); } } ISelectResults<object> results = query.Execute(paramList); int expectedRowCount = qh.IsExpectedRowsConstantPQSS(qryIdx) ? QueryStatics.StructSetPQRowCounts[qryIdx] : QueryStatics.StructSetPQRowCounts[qryIdx] * qh.PortfolioNumSets; if (!qh.VerifySS(results, expectedRowCount, QueryStatics.StructSetPQFieldCounts[qryIdx])) { ErrorOccurred = true; Util.Log("Query verify failed for query index {0}.", qryIdx); qryIdx++; continue; } StructSet<object> ss = results as StructSet<object>; if (ss == null) { Util.Log("Zero records found for query index {0}, continuing.", qryIdx); qryIdx++; continue; } uint rows = 0; Int32 fields = 0; foreach (Struct si in ss) { rows++; fields = (Int32)si.Count; } Util.Log("Query index {0} has {1} rows and {2} fields.", qryIdx, rows, fields); qryIdx++; } Assert.IsFalse(ErrorOccurred, "One or more query validation errors occurred."); } public void StepFourSS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.StructSetQueries) { if (qrystr.Category != QueryCategory.Unsupported) { qryIdx++; continue; } Util.Log("Evaluating unsupported query index {0}.", qryIdx); Query<object> query = qs.NewQuery<object>(qrystr.Query); try { ISelectResults<object> results = query.Execute(); Util.Log("Query exception did not occur for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } catch (GeodeException) { // ok, exception expected, do nothing. qryIdx++; } catch (Exception) { Util.Log("Query unexpected exception occurred for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } } Assert.IsFalse(ErrorOccurred, "Query expected exceptions did not occur."); } public void StepFourPQSS() { bool ErrorOccurred = false; QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.StructSetParamQueries) { if (qrystr.Category != QueryCategory.Unsupported) { qryIdx++; continue; } Util.Log("Evaluating unsupported query index {0}.", qryIdx); Query<object> query = qs.NewQuery<object>(qrystr.Query); //Populate the param list object[] paramList = new object[QueryStatics.NoOfQueryParamSS[qryIdx]]; Int32 numVal = 0; for (Int32 ind = 0; ind < QueryStatics.NoOfQueryParamSS[qryIdx]; ind++) { //Util.Log("NIL::PQRS:: QueryStatics.QueryParamSetSS[{0},{1}] = {2}", qryIdx, ind, QueryStatics.QueryParamSetSS[qryIdx, ind]); try { numVal = Convert.ToInt32(QueryStatics.QueryParamSetSS[qryIdx][ind]); paramList[ind] = numVal; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind]); } catch (FormatException) { //Console.WriteLine("Param string is not a sequence of digits."); paramList[ind] = (System.String)QueryStatics.QueryParamSetSS[qryIdx][ind]; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind].ToString()); } } try { ISelectResults<object> results = query.Execute(paramList); Util.Log("Query exception did not occur for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } catch (GeodeException) { // ok, exception expected, do nothing. qryIdx++; } catch (Exception) { Util.Log("Query unexpected exception occurred for index {0}.", qryIdx); ErrorOccurred = true; qryIdx++; } } Assert.IsFalse(ErrorOccurred, "Query expected exceptions did not occur."); } public void KillServer() { CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); } public delegate void KillServerDelegate(); public void StepOneFailover(bool isPdx) { m_isPdx = isPdx; // This is here so that Client1 registers information of the cacheserver // that has been already started CacheHelper.SetupJavaServers(true, "cacheserver_remoteoqlN.xml", "cacheserver_remoteoql2N.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); CacheHelper.CreateTCRegion_Pool<object, object>(QueryRegionNames[0], true, true, null, CacheHelper.Locators, "__TESTPOOL1_", true); IRegion<object, object> region = CacheHelper.GetVerifyRegion<object, object>(QueryRegionNames[0]); if (!m_isPdx) { Portfolio p1 = new Portfolio(1, 100); Portfolio p2 = new Portfolio(2, 200); Portfolio p3 = new Portfolio(3, 300); Portfolio p4 = new Portfolio(4, 400); region["1"] = p1; region["2"] = p2; region["3"] = p3; region["4"] = p4; } else { PortfolioPdx p1 = new PortfolioPdx(1, 100); PortfolioPdx p2 = new PortfolioPdx(2, 200); PortfolioPdx p3 = new PortfolioPdx(3, 300); PortfolioPdx p4 = new PortfolioPdx(4, 400); region["1"] = p1; region["2"] = p2; region["3"] = p3; region["4"] = p4; } } public void StepTwoFailover() { CacheHelper.StartJavaServerWithLocators(2, "GFECS2", 1); Util.Log("Cacheserver 2 started."); IAsyncResult killRes = null; KillServerDelegate ksd = new KillServerDelegate(KillServer); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); for (int i = 0; i < 10000; i++) { Query<object> qry = qs.NewQuery<object>("select distinct * from /" + QueryRegionNames[0]); ISelectResults<object> results = qry.Execute(); if (i == 10) { killRes = ksd.BeginInvoke(null, null); } var resultSize = results.Size; if (i % 100 == 0) { Util.Log("Iteration upto {0} done, result size is {1}", i, resultSize); } Assert.AreEqual(4, resultSize, "Result size is not 4!"); } killRes.AsyncWaitHandle.WaitOne(); ksd.EndInvoke(killRes); } public void StepTwoPQFailover() { CacheHelper.StartJavaServerWithLocators(2, "GFECS2", 1); Util.Log("Cacheserver 2 started."); IAsyncResult killRes = null; KillServerDelegate ksd = new KillServerDelegate(KillServer); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); for (int i = 0; i < 10000; i++) { Query<object> qry = qs.NewQuery<object>("select distinct * from /" + QueryRegionNames[0] + " where ID > $1"); //Populate the param list object[] paramList = new object[1]; paramList[0] = 1; ISelectResults<object> results = qry.Execute(paramList); if (i == 10) { killRes = ksd.BeginInvoke(null, null); } var resultSize = results.Size; if (i % 100 == 0) { Util.Log("Iteration upto {0} done, result size is {1}", i, resultSize); } Assert.AreEqual(3, resultSize, "Result size is not 3!"); } killRes.AsyncWaitHandle.WaitOne(); ksd.EndInvoke(killRes); } public void StepThreeQT() { QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Util.Log("query " + QueryStatics.ResultSetQueries[34].Query); Query<object> query = qs.NewQuery<object>(QueryStatics.ResultSetQueries[34].Query); try { Util.Log("EXECUTE 1 START for query: ", query.QueryString); ISelectResults<object> results = query.Execute(TimeSpan.FromSeconds(3)); Util.Log("EXECUTE 1 STOP"); Util.Log("Result size is {0}", results.Size); Assert.Fail("Didnt get expected timeout exception for first execute"); } catch (GeodeException excp) { Util.Log("First execute expected exception: {0}", excp.Message); } } public void StepFourQT() { QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Query<object> query = qs.NewQuery<object>(QueryStatics.ResultSetQueries[35].Query); try { Util.Log("EXECUTE 2 START for query: ", query.QueryString); ISelectResults<object> results = query.Execute(TimeSpan.FromSeconds(850)); Util.Log("EXECUTE 2 STOP"); Util.Log("Result size is {0}", results.Size); } catch (GeodeException excp) { Assert.Fail("Second execute unwanted exception: {0}", excp.Message); } } public void StepFiveQT() { QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Query<object> query = qs.NewQuery<object>(QueryStatics.StructSetQueries[17].Query); try { Util.Log("EXECUTE 3 START for query: ", query.QueryString); ISelectResults<object> results = query.Execute(TimeSpan.FromSeconds(2)); Util.Log("EXECUTE 3 STOP"); Util.Log("Result size is {0}", results.Size); Assert.Fail("Didnt get expected timeout exception for third execute"); } catch (GeodeException excp) { Util.Log("Third execute expected exception: {0}", excp.Message); } } public void StepSixQT() { QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Query<object> query = qs.NewQuery<object>(QueryStatics.StructSetQueries[17].Query); try { Util.Log("EXECUTE 4 START for query: ", query.QueryString); ISelectResults<object> results = query.Execute(TimeSpan.FromSeconds(850)); Util.Log("EXECUTE 4 STOP"); Util.Log("Result size is {0}", results.Size); } catch (GeodeException excp) { Assert.Fail("Fourth execute unwanted exception: {0}", excp.Message); } } public void StepThreePQT() { QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Query<object> query = qs.NewQuery<object>(QueryStatics.StructSetParamQueries[5].Query); try { Util.Log("EXECUTE 5 START for query: ", query.QueryString); //Populate the param list, paramList for parameterized query object[] paramList = new object[QueryStatics.NoOfQueryParamSS[5]]; Int32 numVal = 0; for (Int32 ind = 0; ind < QueryStatics.NoOfQueryParamSS[5]; ind++) { try { numVal = Convert.ToInt32(QueryStatics.QueryParamSetSS[5][ind]); paramList[ind] = numVal; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind]); } catch (FormatException) { //Console.WriteLine("Param string is not a sequence of digits."); paramList[ind] = (System.String)QueryStatics.QueryParamSetSS[5][ind]; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind].ToString()); } } ISelectResults<object> results = query.Execute(paramList, TimeSpan.FromSeconds(1)); Util.Log("EXECUTE 5 STOP"); Util.Log("Result size is {0}", results.Size); Assert.Fail("Didnt get expected timeout exception for Fifth execute"); } catch (GeodeException excp) { Util.Log("Fifth execute expected exception: {0}", excp.Message); } } public void StepFourPQT() { QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); var qs = CacheHelper.DCache.GetPoolManager().Find("__TESTPOOL1_").GetQueryService(); Query<object> query = qs.NewQuery<object>(QueryStatics.StructSetParamQueries[5].Query); try { Util.Log("EXECUTE 6 START for query: ", query.QueryString); //Populate the param list, paramList for parameterized query object[] paramList = new object[QueryStatics.NoOfQueryParamSS[5]]; Int32 numVal = 0; for (Int32 ind = 0; ind < QueryStatics.NoOfQueryParamSS[5]; ind++) { try { numVal = Convert.ToInt32(QueryStatics.QueryParamSetSS[5][ind]); paramList[ind] = numVal; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind]); } catch (FormatException) { //Console.WriteLine("Param string is not a sequence of digits."); paramList[ind] = (System.String)QueryStatics.QueryParamSetSS[5][ind]; //Util.Log("NIL::PQRS:: Interger Args:: paramList[0] = {1}", ind, paramList[ind].ToString()); } } ISelectResults<object> results = query.Execute(paramList, TimeSpan.FromSeconds(850)); Util.Log("EXECUTE 6 STOP"); Util.Log("Result size is {0}", results.Size); } catch (GeodeException excp) { Assert.Fail("Sixth execute unwanted exception: {0}", excp.Message); } } public void StepThreeRQ() { bool ErrorOccurred = false; IRegion<object, object> region = CacheHelper.GetRegion<object, object>(QueryRegionNames[0]); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.RegionQueries) { if (qrystr.Category == QueryCategory.Unsupported) { Util.Log("Skipping query index {0} because it is unsupported.", qryIdx); qryIdx++; continue; } Util.Log("Evaluating query index {0}. {1}", qryIdx, qrystr.Query); if (m_isPdx) { if (qryIdx == 18) { Util.Log("Skipping query index {0} because it is unsupported for pdx type.", qryIdx); qryIdx++; continue; } } ISelectResults<object> results = region.Query<object>(qrystr.Query); if (results.Size != (ulong) QueryStatics.RegionQueryRowCounts[qryIdx]) { ErrorOccurred = true; Util.Log("FAIL: Query # {0} expected result size is {1}, actual is {2}", qryIdx, QueryStatics.RegionQueryRowCounts[qryIdx], results.Size); qryIdx++; continue; } qryIdx++; } Assert.IsFalse(ErrorOccurred, "One or more query validation errors occurred."); try { ISelectResults<object> results = region.Query<object>(""); Assert.Fail("Expected IllegalArgumentException exception for empty predicate"); } catch (IllegalArgumentException ex) { Util.Log("got expected IllegalArgumentException exception for empty predicate:"); Util.Log(ex.Message); } try { ISelectResults<object> results = region.Query<object>(QueryStatics.RegionQueries[0].Query, TimeSpan.FromSeconds(2200000)); Assert.Fail("Expected IllegalArgumentException exception for invalid timeout"); } catch (IllegalArgumentException ex) { Util.Log("got expected IllegalArgumentException exception for invalid timeout:"); Util.Log(ex.Message); } try { ISelectResults<object> results = region.Query<object>("bad predicate"); Assert.Fail("Expected QueryException exception for wrong predicate"); } catch (QueryException ex) { Util.Log("got expected QueryException exception for wrong predicate:"); Util.Log(ex.Message); } } public void StepFourRQ() { bool ErrorOccurred = false; IRegion<object, object> region = CacheHelper.GetRegion<object, object>(QueryRegionNames[0]); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.RegionQueries) { if (qrystr.Category == QueryCategory.Unsupported) { Util.Log("Skipping query index {0} because it is unsupported.", qryIdx); qryIdx++; continue; } Util.Log("Evaluating query index {0}.{1}", qryIdx, qrystr.Query); bool existsValue = region.ExistsValue(qrystr.Query); bool expectedResult = QueryStatics.RegionQueryRowCounts[qryIdx] > 0 ? true : false; if (existsValue != expectedResult) { ErrorOccurred = true; Util.Log("FAIL: Query # {0} existsValue expected is {1}, actual is {2}", qryIdx, expectedResult ? "true" : "false", existsValue ? "true" : "false"); qryIdx++; continue; } qryIdx++; } Assert.IsFalse(ErrorOccurred, "One or more query validation errors occurred."); try { bool existsValue = region.ExistsValue(""); Assert.Fail("Expected IllegalArgumentException exception for empty predicate"); } catch (IllegalArgumentException ex) { Util.Log("got expected IllegalArgumentException exception for empty predicate:"); Util.Log(ex.Message); } try { bool existsValue = region.ExistsValue(QueryStatics.RegionQueries[0].Query, TimeSpan.FromSeconds(2200000)); Assert.Fail("Expected IllegalArgumentException exception for invalid timeout"); } catch (IllegalArgumentException ex) { Util.Log("got expected IllegalArgumentException exception for invalid timeout:"); Util.Log(ex.Message); } try { bool existsValue = region.ExistsValue("bad predicate"); Assert.Fail("Expected QueryException exception for wrong predicate"); } catch (QueryException ex) { Util.Log("got expected QueryException exception for wrong predicate:"); Util.Log(ex.Message); } } public void StepFiveRQ() { bool ErrorOccurred = false; IRegion<object, object> region = CacheHelper.GetRegion<object, object>(QueryRegionNames[0]); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.RegionQueries) { if (qrystr.Category == QueryCategory.Unsupported) { Util.Log("Skipping query index {0} because it is unsupported.", qryIdx); qryIdx++; continue; } Util.Log("Evaluating query index {0}.", qryIdx); try { Object result = region.SelectValue(qrystr.Query); if (!(QueryStatics.RegionQueryRowCounts[qryIdx] == 0 || QueryStatics.RegionQueryRowCounts[qryIdx] == 1)) { ErrorOccurred = true; Util.Log("FAIL: Query # {0} expected query exception did not occur", qryIdx); qryIdx++; continue; } } catch (QueryException) { if (QueryStatics.RegionQueryRowCounts[qryIdx] == 0 || QueryStatics.RegionQueryRowCounts[qryIdx] == 1) { ErrorOccurred = true; Util.Log("FAIL: Query # {0} unexpected query exception occured", qryIdx); qryIdx++; continue; } } catch (Exception) { ErrorOccurred = true; Util.Log("FAIL: Query # {0} unexpected exception occured", qryIdx); qryIdx++; continue; } qryIdx++; } Assert.IsFalse(ErrorOccurred, "One or more query validation errors occurred."); try { Object result = region.SelectValue(""); Assert.Fail("Expected IllegalArgumentException exception for empty predicate"); } catch (IllegalArgumentException ex) { Util.Log("got expected IllegalArgumentException exception for empty predicate:"); Util.Log(ex.Message); } try { Object result = region.SelectValue(QueryStatics.RegionQueries[0].Query, TimeSpan.FromSeconds(2200000)); Assert.Fail("Expected IllegalArgumentException exception for invalid timeout"); } catch (IllegalArgumentException ex) { Util.Log("got expected IllegalArgumentException exception for invalid timeout:"); Util.Log(ex.Message); } try { Object result = region.SelectValue("bad predicate"); Assert.Fail("Expected QueryException exception for wrong predicate"); } catch (QueryException ex) { Util.Log("got expected QueryException exception for wrong predicate:"); Util.Log(ex.Message); } } public void StepSixRQ() { bool ErrorOccurred = false; IRegion<object, object> region = CacheHelper.GetRegion<object, object>(QueryRegionNames[0]); int qryIdx = 0; foreach (QueryStrings qrystr in QueryStatics.RegionQueries) { if ((qrystr.Category != QueryCategory.Unsupported) || (qryIdx == 3)) { qryIdx++; continue; } Util.Log("Evaluating unsupported query index {0}.", qryIdx); try { ISelectResults<object> results = region.Query<object>(qrystr.Query); Util.Log("Query # {0} expected exception did not occur", qryIdx); ErrorOccurred = true; qryIdx++; } catch (QueryException) { // ok, exception expected, do nothing. qryIdx++; } catch (Exception) { ErrorOccurred = true; Util.Log("FAIL: Query # {0} unexpected exception occured", qryIdx); qryIdx++; } } Assert.IsFalse(ErrorOccurred, "Query expected exceptions did not occur."); } //private void CreateRegions(object p, object USE_ACK, object endPoint1, bool p_4) //{ // throw new Exception("The method or operation is not implemented."); //} //public void CompareMap(CacheableHashMap map1, CacheableHashMap map2) //{ // if (map1.Count != map2.Count) // Assert.Fail("Number of Keys dont match"); // if (map1.Count == 0) return; // foreach (KeyValuePair<ICacheableKey, ISerializable> entry in map1) // { // ISerializable value; // if (!(map2.TryGetValue(entry.Key,out value))) // { // Assert.Fail("Key was not found"); // return; // } // if(entry.Value.Equals(value)) // { // Assert.Fail("Value was not found"); // return; // } // } //} //public void GetAllRegionQuery() //{ // IRegion<object, object> region0 = CacheHelper.GetVerifyRegion(QueryRegionNames[0]); // IRegion<object, object> region1 = region0.GetSubRegion(QueryRegionNames[1] ); // IRegion<object, object> region2 = CacheHelper.GetVerifyRegion(QueryRegionNames[1]); // IRegion<object, object> region3 = CacheHelper.GetVerifyRegion(QueryRegionNames[2]); // IRegion<object, object> region4 = CacheHelper.GetVerifyRegion(QueryRegionNames[3]); // string[] SecIds = Portfolio.SecIds; // int NumSecIds = SecIds.Length; // List<ICacheableKey> PosKeys = new List<ICacheableKey>(); // List<ICacheableKey> PortKeys = new List<ICacheableKey>(); // CacheableHashMap ExpectedPosMap = new CacheableHashMap(); // CacheableHashMap ExpectedPortMap = new CacheableHashMap(); // QueryHelper<object, object> qh = QueryHelper<object, object>.GetHelper(CacheHelper.DCache); // int SetSize = qh.PositionSetSize; // int NumSets = qh.PositionNumSets; // for (int set = 1; set <= NumSets; set++) // { // for (int current = 1; current <= SetSize; current++) // { // CacheableKey PosKey = "pos" + set + "-" + current; // Position pos = new Position(SecIds[current % NumSecIds], current * 100 ); // PosKeys.Add(PosKey); // ExpectedPosMap.Add(PosKey, pos); // } // } // SetSize = qh.PortfolioSetSize; // NumSets = qh.PortfolioNumSets; // for (int set = 1; set <= NumSets; set++) // { // for (int current = 1; current <= SetSize; current++) // { // CacheableKey PortKey = "port" + set + "-" + current; // Portfolio Port = new Portfolio(current,1); // PortKeys.Add(PortKey); // ExpectedPortMap.Add(PortKey, Port); // } // } // CacheableHashMap ResMap = new CacheableHashMap(); // Dictionary<ICacheableKey, Exception> ExMap = new Dictionary<ICacheableKey, Exception>(); // region0.GetAll(PortKeys.ToArray(), ResMap, ExMap); // CompareMap(ResMap, ExpectedPortMap); // if (ExMap.Count != 0) // { // Assert.Fail("Expected No Exception"); // } // ResMap.Clear(); // region1.GetAll(PosKeys.ToArray(), ResMap, ExMap); // CompareMap(ResMap, ExpectedPosMap); // if (ExMap.Count != 0) // { // Assert.Fail("Expected No Exception"); // } // ResMap.Clear(); // region2.GetAll(PosKeys.ToArray(), ResMap, ExMap); // CompareMap(ResMap, ExpectedPosMap); // if (ExMap.Count != 0) // { // Assert.Fail("Expected No Exception"); // } // ResMap.Clear(); // region3.GetAll(PortKeys.ToArray(), ResMap, ExMap); // CompareMap(ResMap, ExpectedPortMap); // if (ExMap.Count != 0) // { // Assert.Fail("Expected No Exception"); // } // ResMap.Clear(); // region4.GetAll(PortKeys.ToArray(), ResMap, ExMap); // CompareMap(ResMap, ExpectedPortMap); // if (ExMap.Count != 0) // { // Assert.Fail("Expected No Exception"); // } // ResMap.Clear(); //} #endregion void runRemoteQueryRS() { CacheHelper.SetupJavaServers(true, "remotequeryN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); m_client1.Call(StepOne, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client1.Call(StepTwo, m_isPdx); Util.Log("StepTwo complete."); m_client1.Call(StepThreeRS); Util.Log("StepThree complete."); m_client1.Call(StepFourRS); Util.Log("StepFour complete."); m_client1.Call(Close); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } void runRemoteParamQueryRS() { CacheHelper.SetupJavaServers(true, "remotequeryN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); m_client1.Call(StepOne, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client1.Call(StepTwo, m_isPdx); Util.Log("StepTwo complete."); m_client1.Call(StepThreePQRS); Util.Log("StepThree complete."); m_client1.Call(StepFourPQRS); Util.Log("StepFour complete."); m_client1.Call(Close); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } void runRemoteQuerySS() { CacheHelper.SetupJavaServers(true, "remotequeryN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); m_client2.Call(StepOne, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client2.Call(StepTwo, m_isPdx); Util.Log("StepTwo complete."); m_client2.Call(StepThreeSS); Util.Log("StepThree complete."); m_client2.Call(StepFourSS); Util.Log("StepFour complete."); //m_client2.Call(GetAllRegionQuery); m_client2.Call(Close); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } void runRemoteParamQuerySS() { CacheHelper.SetupJavaServers(true, "remotequeryN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); m_client2.Call(StepOne, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client2.Call(StepTwo, m_isPdx); Util.Log("StepTwo complete."); m_client2.Call(StepThreePQSS); Util.Log("StepThree complete."); m_client2.Call(StepFourPQSS); Util.Log("StepFour complete."); //m_client2.Call(GetAllRegionQuery); m_client2.Call(Close); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } void runRemoteQueryFailover() { try { m_client1.Call(StepOneFailover, m_isPdx); Util.Log("StepOneFailover complete."); m_client1.Call(StepTwoFailover); Util.Log("StepTwoFailover complete."); m_client1.Call(Close); Util.Log("Client closed"); } finally { m_client1.Call(CacheHelper.StopJavaServers); m_client1.Call(CacheHelper.StopJavaLocator, 1); } } void runRemoteParamQueryFailover() { try { m_client1.Call(StepOneFailover, m_isPdx); Util.Log("StepOneFailover complete."); m_client1.Call(StepTwoPQFailover); Util.Log("StepTwoPQFailover complete."); m_client1.Call(Close); Util.Log("Client closed"); } finally { m_client1.Call(CacheHelper.StopJavaServers); m_client1.Call(CacheHelper.StopJavaLocator, 1); } } void runQueryExclusiveness() { CacheHelper.SetupJavaServers(true, "cacheserver_remoteoqlN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); m_client1.Call(StepOneQE, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client1.Call(StepTwoQE); Util.Log("StepTwo complete."); m_client1.Call(Close); Util.Log("Client closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } void runQueryTimeout() { CacheHelper.SetupJavaServers(true, "remotequeryN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); m_client1.Call(StepOne, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client1.Call(StepTwoQT); Util.Log("StepTwo complete."); m_client1.Call(StepThreeQT); Util.Log("StepThree complete."); Thread.Sleep(150000); // sleep 2.5min to allow server query to complete m_client1.Call(StepFourQT); Util.Log("StepFour complete."); m_client1.Call(StepFiveQT); Util.Log("StepFive complete."); Thread.Sleep(60000); // sleep 1min to allow server query to complete m_client1.Call(StepSixQT); Util.Log("StepSix complete."); m_client1.Call(Close); Util.Log("Client closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } void runParamQueryTimeout() { CacheHelper.SetupJavaServers(true, "remotequeryN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started. WITH PDX = " + m_isPdx); m_client1.Call(StepOne, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client1.Call(StepTwoQT); Util.Log("StepTwo complete."); m_client1.Call(StepThreePQT); Util.Log("StepThreePQT complete."); Thread.Sleep(60000); // sleep 1min to allow server query to complete m_client1.Call(StepFourPQT); Util.Log("StepFourPQT complete."); m_client1.Call(Close); Util.Log("Client closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } void runRegionQuery() { CacheHelper.SetupJavaServers(true, "remotequeryN.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); m_client2.Call(StepOne, CacheHelper.Locators, m_isPdx); Util.Log("StepOne complete."); m_client2.Call(StepTwo, m_isPdx); Util.Log("StepTwo complete."); //Extra Step //m_client1.Call(StepExtra); m_client2.Call(StepThreeRQ); Util.Log("StepThree complete."); m_client2.Call(StepFourRQ); Util.Log("StepFour complete."); m_client2.Call(StepFiveRQ); Util.Log("StepFive complete."); m_client2.Call(StepSixRQ); Util.Log("StepSix complete."); m_client2.Call(Close); Util.Log("Client closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); } static bool m_isPdx = false; [Test] public void RemoteQueryRSWithPdx() { m_isPdx = true; runRemoteQueryRS(); } [Test] public void RemoteQueryRSWithoutPdx() { m_isPdx = false; runRemoteQueryRS(); } [Test] public void RemoteParamQueryRSWithPdx() { m_isPdx = true; runRemoteParamQueryRS(); } [Test] public void RemoteParamQueryRSWithoutPdx() { m_isPdx = false; runRemoteParamQueryRS(); } [Test] public void RemoteQuerySSWithPdx() { m_isPdx = true; runRemoteQuerySS(); } [Test] public void RemoteQuerySSWithoutPdx() { m_isPdx = false; runRemoteQuerySS(); } [Test] public void RemoteParamQuerySSWithoutPdx() { m_isPdx = false; runRemoteParamQuerySS(); } [Test] public void RemoteParamQuerySSWithPdx() { m_isPdx = true; runRemoteParamQuerySS(); } [Test] public void RemoteQueryFailoverWithPdx() { m_isPdx = true; runRemoteQueryFailover(); } [Test] public void RemoteQueryFailoverWithoutPdx() { m_isPdx = false; runRemoteQueryFailover(); } [Test] [Ignore] public void RemoteParamQueryFailover() { for (int i = 0; i < 2; i++) { runRemoteParamQueryFailover(); m_isPdx = true; } m_isPdx = false; } [Test] public void QueryExclusivenessWithoutPdx() { m_isPdx = false; runQueryExclusiveness(); } [Test] public void QueryExclusivenessWithPdx() { m_isPdx = true; runQueryExclusiveness(); } [Test] [Ignore] public void QueryTimeout() { for (int i = 0; i < 2; i++) { runQueryTimeout(); m_isPdx = true; } m_isPdx = false; } [Test] [Ignore] public void ParamQueryTimeout() { for (int i = 0; i < 2; i++) { runParamQueryTimeout(); m_isPdx = true; } m_isPdx = false; } [Test] public void RegionQueryWithPdx() { m_isPdx = true; runRegionQuery(); } [Test] public void RegionQueryWithoutPdx() { m_isPdx = false; runRegionQuery(); } } }