25 #include "DatabaseProvider.h"
32 #if defined( TESTDLL_EXPORT ) || defined ( TESTDLL_IMPORT )
33 friend class DbTestsUtil;
44 static void Initialize();
50 static void CreateKeys();
51 static void DeleteData(
void* data );
52 static void DeleteConfig(
void* data );
56 static Database* getData();
57 static Database* getConfig();
58 static DatabaseProviderFactory*
getProvider() {
return m_DatabaseProvider; }
60 static void createProvider(
const NameValueCollection& configSection );
74 static void GetQueues();
85 static void Terminate();
86 static void TerminateSelf();
89 static void SetConfigDataSection(
const NameValueCollection& dataSection );
90 static void SetConfigCfgSection(
const NameValueCollection& cfgSection );
92 static bool isConnected();
95 static string GetActiveRoutingSchemaName();
96 static DataSet* GetActiveRoutingSchemas();
97 static DataSet* ReadRoutingRules(
const string& schemaName );
98 static DataSet* ReadRoutingRule(
const long ruleId );
101 static DataSet* GetCOTMarkers();
104 static unsigned long Archive();
107 static DataSet* GetRoutingJob(
const string& jobId );
108 static DataSet* ReadJobParams(
const string& jobId );
109 static void CommitJob(
const string& jobId,
const bool isolate =
true );
110 static void AbortJob(
const string& jobId );
111 static void RollbackJob(
const string& jobId );
112 static void DeferJob(
const string& jobId,
const long deferedQueue,
const string& routingPoint,
const string&
function,
const int userId );
113 static void ResumeJobs(
const long deferedQueue );
114 static void InsertJob(
const string& jobId,
const string& routingPoint,
const string&
function,
const int userId );
118 static BatchManagerBase::BATCH_STATUS BatchJob(
const string& jobId,
const string& sequence,
119 const string& batchId,
const string& correlId,
const string& feedback,
const string& xformItem,
const string& amountBDP,
const string& amountADP );
120 static BatchManagerBase::BATCH_STATUS GetBatchStatus(
const string& batchId,
const string& batchUID,
string& comBatchId,
const int userId,
121 const unsigned long batchCount,
const string& batchAmount,
const long serviceId,
const string& routingPoint );
122 static void UpdateBatchCode(
const string& batchId,
const string& code );
124 static void TerminateBatch(
const string& batchId,
const string& batchType,
const BatchManagerBase::BATCH_STATUS status,
const string& reason );
125 static void TerminateRapidBatch(
const string& batchId,
const int userId,
const string& tableName,
const string& responder );
128 static DataSet* GetBatchMessages(
const string& batchId,
const bool isReply,
const string& issuer,
int ddbtSettledReply = 0 );
129 static DataSet* GetBatchMessages(
const string& batchId,
const string& tableName,
const string& spName =
"GetMessagesInAssembly" );
130 static DataSet* GetBatchPart(
const int userId,
const string& receiver,
const int serviceId,
const string& queue );
131 static void RemoveBatchMessages(
const string& batchId,
const string& tableName,
const string& spName =
"DeleteMessagesInAssembly" );
132 static void UpdateOriginalBatchMessages(
const string& batchid,
const string& code = RoutingMessageEvaluator::FEEDBACKFTP_REFUSE );
133 static string GetBatchType(
const string& batchId,
const string& tableName =
"BATCHJOBS",
const string& sender =
"" );
134 static void InsertIncomingBatch(
const string& batchId,
const string& messageId,
const string& messageNamespace );
135 static string GetOriginalRef(
const string& reference,
const string& batchId );
138 static DataSet* GetRoutingMessage(
const string& tableName,
const string& messageId );
140 static void MoveRoutingMessage(
const string& sourceTable,
const string& destTable,
const string& messageId,
141 const string& payload,
const string& batchId,
const string& correlationId,
const string& sessionId,
142 const string& requestorService,
const string& responderService,
const string& requestType,
143 const unsigned long priority,
const short holdstatus,
const long sequence,
const string& feedback );
145 static void DeleteRoutingMessage(
const string& tableName,
const string& messageId,
bool isReply =
false );
146 static void InsertRoutingMessage(
const string& tableName,
const string& messageId,
const string& payload,
const string& batchId,
147 const string& correlationId,
const string& sessionId,
const string& requestorService,
const string& responderService,
148 const string& requestType,
const unsigned long priority,
const short holdstatus,
const long sequence,
const string& feedback );
149 static void UpdateRoutingMessage(
const string& tableName,
const string& messageId,
const string& payload,
const string& batchId,
150 const string& correlationId,
const string& sessionId,
const string& requestorService,
const string& responderService,
151 const string& requestType,
unsigned long priority,
short holdstatus,
long sequence,
const string& feedback );
152 static string GetOriginalPayload(
const string& correlationId );
153 static string GetOriginalMessageId(
const string& correlationId );
156 static void InsertBusinessMessage(
const string& messageType,
const string& senderApp,
const string& receiverApp,
const string& messageId,
const string& correlationId,
const vector<string>& keywords,
const vector<string>& keywordValues );
157 static void InsertBusinessMessage(
const string& messageId,
const string& correlationId,
int crtQueue,
const string& messageType,
158 const string& senderBIC,
const string& receiverBIC,
const string& currDate,
const string& currType,
const string& currAmmount,
159 const string& senderApp,
const string& receiverApp,
const string& trn,
const string& relref,
const string& mur,
160 const string& iban,
const string& ibanpl,
const string& senderCorr,
const string& receiverCorr,
const int userid,
161 const string& edToEdId,
const string& orgInstrId,
const string& orgTxId,
const string& addMsgInf );
162 static void UpdateBusinessMessageResponder(
const string& messageId,
const string& receiverApp );
163 static void UpdateBusinessMessageUserId(
const string& correlationId,
const int userId );
164 static void UpdateBusinessMessageValueDate(
const string& correlationId,
const string& newDate );
165 static void UpdateBusinessMessageAck(
const string&
id,
bool batch );
166 static void UpdateLiquidities(
const string& correlationId );
167 static void UpdateBMAssembleResponder(
const string& batchId,
const string& receiverApp );
170 static bool AggregationRequestOp(
const string& aggregationTable,
const RoutingAggregationCode& request,
bool& trim );
171 static void InsertAggregationRequest(
const string& aggregationTable,
const RoutingAggregationCode& request );
172 static bool UpdateAggregationRequest(
const string& aggregationTable,
const RoutingAggregationCode& request,
bool trim =
false );
173 static bool GetAggregationFields(
const string& aggregationTable, RoutingAggregationCode& request,
bool trim =
false );
175 static string GetReplyQueue(
const string& senderApp );
176 static string GetDuplicateQueue(
const string& senderApp );
177 static string GetDuplicateReplyQueue(
const string& senderApp );
178 static string GetDelayedReplyQueue(
const string& senderApp );
181 static DataSet* GetKeywordMappings();
182 static DataSet* GetKeywords();
185 static map< string, bool > GetDuplicateServices();
186 static int GetDuplicates(
const string& service,
const string& messageId );
187 static void PurgeHashes(
const int hours );
188 static unsigned int GetNextSequence(
const long serviceId );
191 static string GetQueueName(
const long queueId );
192 static long GetQueueId(
const string& queueName );
194 static RoutingQueue& GetQueue(
const string& queueName );
195 static void ChangeQueueHoldStatus(
const string& queueName,
const bool holdStatus );
197 static map< long, RoutingQueue >* GetQueueCache()
199 if ( m_QueueIdCache == NULL )
200 throw runtime_error(
"Unable to obtain queue definitions from the database [queue cache empty]" );
201 return m_QueueIdCache;
204 static map< string, string >* GetReplyQueueCache()
206 if ( m_ReplyQueueCache == NULL )
207 throw runtime_error(
"Unable to obtain reply queue definitions from the database [reply queue cache empty]" );
208 return m_ReplyQueueCache;
211 static map< string, string >* GetDuplicateQueueCache()
213 if ( m_DuplicateQueueCache == NULL )
214 throw runtime_error(
"Unable to obtain duplicate queue definitions from the database [duplicate queue cache empty]" );
215 return m_DuplicateQueueCache;
218 static map< string, string >* GetDuplicateReplyQueueCache()
220 if ( m_DuplicateReplyQueueCache == NULL )
221 throw runtime_error(
"Unable to obtain duplicate replies queue definitions, from the database [duplicate reply queue cache empty]" );
222 return m_DuplicateQueueCache;
225 static map< string, string >* GetDelayedReplyQueueCache()
227 if ( m_DelayedReplyQueueCache == NULL )
228 throw runtime_error(
"Unable to obtain delayed replies queue definitions, from the database [delayed reply queue cache empty]" );
229 return m_DelayedReplyQueueCache;
235 static bool CallBoolProcedure(
const string& procName,
const string& messageId,
const string& messageTable );
236 static DataSet* GetDelayedMessages(
const string& tableName,
const string& tokenId );
237 static void UpdateDelayedId(
const string& tableName,
const string& messageId,
const string& delayedId );
238 static DataSet* GetEnrichData(
const string& tableName,
const string& filterId );