001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.activemq.store.jdbc; 018 019 /** 020 * 021 * 022 * @org.apache.xbean.XBean element="statements" 023 * 024 */ 025 public class Statements { 026 027 protected String messageTableName = "ACTIVEMQ_MSGS"; 028 protected String durableSubAcksTableName = "ACTIVEMQ_ACKS"; 029 protected String lockTableName = "ACTIVEMQ_LOCK"; 030 protected String binaryDataType = "BLOB"; 031 protected String containerNameDataType = "VARCHAR(250)"; 032 protected String msgIdDataType = "VARCHAR(250)"; 033 protected String sequenceDataType = "BIGINT"; 034 protected String longDataType = "BIGINT"; 035 protected String stringIdDataType = "VARCHAR(250)"; 036 protected boolean useExternalMessageReferences; 037 038 private String tablePrefix = ""; 039 private String addMessageStatement; 040 private String updateMessageStatement; 041 private String removeMessageStatement; 042 private String findMessageSequenceIdStatement; 043 private String findMessageStatement; 044 private String findMessageByIdStatement; 045 private String findAllMessagesStatement; 046 private String findLastSequenceIdInMsgsStatement; 047 private String findLastSequenceIdInAcksStatement; 048 private String createDurableSubStatement; 049 private String findDurableSubStatement; 050 private String findAllDurableSubsStatement; 051 private String updateLastPriorityAckRowOfDurableSubStatement; 052 private String deleteSubscriptionStatement; 053 private String findAllDurableSubMessagesStatement; 054 private String findDurableSubMessagesStatement; 055 private String findDurableSubMessagesByPriorityStatement; 056 private String findAllDestinationsStatement; 057 private String removeAllMessagesStatement; 058 private String removeAllSubscriptionsStatement; 059 private String deleteOldMessagesStatement; 060 private String[] createSchemaStatements; 061 private String[] dropSchemaStatements; 062 private String lockCreateStatement; 063 private String lockUpdateStatement; 064 private String nextDurableSubscriberMessageStatement; 065 private String durableSubscriberMessageCountStatement; 066 private String lastAckedDurableSubscriberMessageStatement; 067 private String destinationMessageCountStatement; 068 private String findNextMessagesStatement; 069 private String findNextMessagesByPriorityStatement; 070 private boolean useLockCreateWhereClause; 071 private String findAllMessageIdsStatement; 072 private String lastProducerSequenceIdStatement; 073 private String selectDurablePriorityAckStatement; 074 075 private String insertDurablePriorityAckStatement; 076 private String updateDurableLastAckStatement; 077 private String deleteOldMessagesStatementWithPriority; 078 private String durableSubscriberMessageCountStatementWithPriority; 079 private String dropAckPKAlterStatementEnd; 080 081 public String[] getCreateSchemaStatements() { 082 if (createSchemaStatements == null) { 083 createSchemaStatements = new String[] { 084 "CREATE TABLE " + getFullMessageTableName() + "(" + "ID " + sequenceDataType + " NOT NULL" 085 + ", CONTAINER " + containerNameDataType + ", MSGID_PROD " + msgIdDataType + ", MSGID_SEQ " 086 + sequenceDataType + ", EXPIRATION " + longDataType + ", MSG " 087 + (useExternalMessageReferences ? stringIdDataType : binaryDataType) 088 + ", PRIMARY KEY ( ID ) )", 089 "CREATE INDEX " + getFullMessageTableName() + "_MIDX ON " + getFullMessageTableName() + " (MSGID_PROD,MSGID_SEQ)", 090 "CREATE INDEX " + getFullMessageTableName() + "_CIDX ON " + getFullMessageTableName() + " (CONTAINER)", 091 "CREATE INDEX " + getFullMessageTableName() + "_EIDX ON " + getFullMessageTableName() + " (EXPIRATION)", 092 "CREATE TABLE " + getFullAckTableName() + "(" + "CONTAINER " + containerNameDataType + " NOT NULL" 093 + ", SUB_DEST " + stringIdDataType 094 + ", CLIENT_ID " + stringIdDataType + " NOT NULL" + ", SUB_NAME " + stringIdDataType 095 + " NOT NULL" + ", SELECTOR " + stringIdDataType + ", LAST_ACKED_ID " + sequenceDataType 096 + ", PRIMARY KEY ( CONTAINER, CLIENT_ID, SUB_NAME))", 097 "CREATE TABLE " + getFullLockTableName() 098 + "( ID " + longDataType + " NOT NULL, TIME " + longDataType 099 + ", BROKER_NAME " + stringIdDataType + ", PRIMARY KEY (ID) )", 100 "INSERT INTO " + getFullLockTableName() + "(ID) VALUES (1)", 101 "ALTER TABLE " + getFullMessageTableName() + " ADD PRIORITY " + sequenceDataType, 102 "CREATE INDEX " + getFullMessageTableName() + "_PIDX ON " + getFullMessageTableName() + " (PRIORITY)", 103 "ALTER TABLE " + getFullAckTableName() + " ADD PRIORITY " + sequenceDataType + " DEFAULT 5 NOT NULL", 104 "ALTER TABLE " + getFullAckTableName() + " " + getDropAckPKAlterStatementEnd(), 105 "ALTER TABLE " + getFullAckTableName() + " ADD PRIMARY KEY (CONTAINER, CLIENT_ID, SUB_NAME, PRIORITY)", 106 }; 107 } 108 return createSchemaStatements; 109 } 110 111 public String getDropAckPKAlterStatementEnd() { 112 if (dropAckPKAlterStatementEnd == null) { 113 dropAckPKAlterStatementEnd = "DROP PRIMARY KEY"; 114 } 115 return dropAckPKAlterStatementEnd; 116 } 117 118 public void setDropAckPKAlterStatementEnd(String dropAckPKAlterStatementEnd) { 119 this.dropAckPKAlterStatementEnd = dropAckPKAlterStatementEnd; 120 } 121 122 public String[] getDropSchemaStatements() { 123 if (dropSchemaStatements == null) { 124 dropSchemaStatements = new String[] {"DROP TABLE " + getFullAckTableName() + "", 125 "DROP TABLE " + getFullMessageTableName() + "", 126 "DROP TABLE " + getFullLockTableName() + ""}; 127 } 128 return dropSchemaStatements; 129 } 130 131 public String getAddMessageStatement() { 132 if (addMessageStatement == null) { 133 addMessageStatement = "INSERT INTO " 134 + getFullMessageTableName() 135 + "(ID, MSGID_PROD, MSGID_SEQ, CONTAINER, EXPIRATION, PRIORITY, MSG) VALUES (?, ?, ?, ?, ?, ?, ?)"; 136 } 137 return addMessageStatement; 138 } 139 140 public String getUpdateMessageStatement() { 141 if (updateMessageStatement == null) { 142 updateMessageStatement = "UPDATE " + getFullMessageTableName() + " SET MSG=? WHERE ID=?"; 143 } 144 return updateMessageStatement; 145 } 146 147 public String getRemoveMessageStatement() { 148 if (removeMessageStatement == null) { 149 removeMessageStatement = "DELETE FROM " + getFullMessageTableName() + " WHERE ID=?"; 150 } 151 return removeMessageStatement; 152 } 153 154 public String getFindMessageSequenceIdStatement() { 155 if (findMessageSequenceIdStatement == null) { 156 findMessageSequenceIdStatement = "SELECT ID, PRIORITY FROM " + getFullMessageTableName() 157 + " WHERE MSGID_PROD=? AND MSGID_SEQ=? AND CONTAINER=?"; 158 } 159 return findMessageSequenceIdStatement; 160 } 161 162 public String getFindMessageStatement() { 163 if (findMessageStatement == null) { 164 findMessageStatement = "SELECT MSG FROM " + getFullMessageTableName() + " WHERE MSGID_PROD=? AND MSGID_SEQ=?"; 165 } 166 return findMessageStatement; 167 } 168 169 public String getFindMessageByIdStatement() { 170 if (findMessageByIdStatement == null) { 171 findMessageByIdStatement = "SELECT MSG FROM " + getFullMessageTableName() + " WHERE ID=?"; 172 } 173 return findMessageByIdStatement; 174 } 175 176 public String getFindAllMessagesStatement() { 177 if (findAllMessagesStatement == null) { 178 findAllMessagesStatement = "SELECT ID, MSG FROM " + getFullMessageTableName() 179 + " WHERE CONTAINER=? ORDER BY ID"; 180 } 181 return findAllMessagesStatement; 182 } 183 184 public String getFindAllMessageIdsStatement() { 185 // this needs to be limited maybe need to use getFindLastSequenceIdInMsgsStatement 186 // and work back for X 187 if (findAllMessageIdsStatement == null) { 188 findAllMessageIdsStatement = "SELECT ID, MSGID_PROD, MSGID_SEQ FROM " + getFullMessageTableName() 189 + " ORDER BY ID DESC"; 190 } 191 return findAllMessageIdsStatement; 192 } 193 194 public String getFindLastSequenceIdInMsgsStatement() { 195 if (findLastSequenceIdInMsgsStatement == null) { 196 findLastSequenceIdInMsgsStatement = "SELECT MAX(ID) FROM " + getFullMessageTableName(); 197 } 198 return findLastSequenceIdInMsgsStatement; 199 } 200 201 public String getLastProducerSequenceIdStatement() { 202 if (lastProducerSequenceIdStatement == null) { 203 lastProducerSequenceIdStatement = "SELECT MAX(MSGID_SEQ) FROM " + getFullMessageTableName() 204 + " WHERE MSGID_PROD=?"; 205 } 206 return lastProducerSequenceIdStatement; 207 } 208 209 210 public String getFindLastSequenceIdInAcksStatement() { 211 if (findLastSequenceIdInAcksStatement == null) { 212 findLastSequenceIdInAcksStatement = "SELECT MAX(LAST_ACKED_ID) FROM " + getFullAckTableName(); 213 } 214 return findLastSequenceIdInAcksStatement; 215 } 216 217 public String getCreateDurableSubStatement() { 218 if (createDurableSubStatement == null) { 219 createDurableSubStatement = "INSERT INTO " 220 + getFullAckTableName() 221 + "(CONTAINER, CLIENT_ID, SUB_NAME, SELECTOR, LAST_ACKED_ID, SUB_DEST, PRIORITY) " 222 + "VALUES (?, ?, ?, ?, ?, ?, ?)"; 223 } 224 return createDurableSubStatement; 225 } 226 227 public String getFindDurableSubStatement() { 228 if (findDurableSubStatement == null) { 229 findDurableSubStatement = "SELECT SELECTOR, SUB_DEST " + "FROM " + getFullAckTableName() 230 + " WHERE CONTAINER=? AND CLIENT_ID=? AND SUB_NAME=?"; 231 } 232 return findDurableSubStatement; 233 } 234 235 public String getFindAllDurableSubsStatement() { 236 if (findAllDurableSubsStatement == null) { 237 findAllDurableSubsStatement = "SELECT SELECTOR, SUB_NAME, CLIENT_ID, SUB_DEST" + " FROM " 238 + getFullAckTableName() + " WHERE CONTAINER=? AND PRIORITY=0"; 239 } 240 return findAllDurableSubsStatement; 241 } 242 243 public String getUpdateLastPriorityAckRowOfDurableSubStatement() { 244 if (updateLastPriorityAckRowOfDurableSubStatement == null) { 245 updateLastPriorityAckRowOfDurableSubStatement = "UPDATE " + getFullAckTableName() + " SET LAST_ACKED_ID=?" 246 + " WHERE CONTAINER=? AND CLIENT_ID=? AND SUB_NAME=? AND PRIORITY=?"; 247 } 248 return updateLastPriorityAckRowOfDurableSubStatement; 249 } 250 251 public String getDeleteSubscriptionStatement() { 252 if (deleteSubscriptionStatement == null) { 253 deleteSubscriptionStatement = "DELETE FROM " + getFullAckTableName() 254 + " WHERE CONTAINER=? AND CLIENT_ID=? AND SUB_NAME=?"; 255 } 256 return deleteSubscriptionStatement; 257 } 258 259 public String getFindAllDurableSubMessagesStatement() { 260 if (findAllDurableSubMessagesStatement == null) { 261 findAllDurableSubMessagesStatement = "SELECT M.ID, M.MSG FROM " + getFullMessageTableName() 262 + " M, " + getFullAckTableName() + " D " 263 + " WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=?" 264 + " AND M.CONTAINER=D.CONTAINER AND M.ID > D.LAST_ACKED_ID" 265 + " ORDER BY M.PRIORITY DESC, M.ID"; 266 } 267 return findAllDurableSubMessagesStatement; 268 } 269 270 public String getFindDurableSubMessagesStatement() { 271 if (findDurableSubMessagesStatement == null) { 272 findDurableSubMessagesStatement = "SELECT M.ID, M.MSG FROM " + getFullMessageTableName() + " M, " 273 + getFullAckTableName() + " D " 274 + " WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=?" 275 + " AND M.CONTAINER=D.CONTAINER AND M.ID > D.LAST_ACKED_ID" 276 + " AND M.ID > ?" 277 + " ORDER BY M.ID"; 278 } 279 return findDurableSubMessagesStatement; 280 } 281 282 public String getFindDurableSubMessagesByPriorityStatement() { 283 if (findDurableSubMessagesByPriorityStatement == null) { 284 findDurableSubMessagesByPriorityStatement = "SELECT M.ID, M.MSG FROM " + getFullMessageTableName() + " M," 285 + " " + getFullAckTableName() + " D" 286 + " WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=?" 287 + " AND M.CONTAINER=D.CONTAINER" 288 + " AND M.PRIORITY=D.PRIORITY AND M.ID > D.LAST_ACKED_ID" 289 + " AND M.ID > ? AND M.PRIORITY = ?" 290 + " ORDER BY M.ID"; 291 } 292 return findDurableSubMessagesByPriorityStatement; 293 } 294 295 public String findAllDurableSubMessagesStatement() { 296 if (findAllDurableSubMessagesStatement == null) { 297 findAllDurableSubMessagesStatement = "SELECT M.ID, M.MSG FROM " + getFullMessageTableName() 298 + " M, " + getFullAckTableName() + " D " 299 + " WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=?" 300 + " AND M.CONTAINER=D.CONTAINER AND M.ID > D.LAST_ACKED_ID" 301 + " ORDER BY M.ID"; 302 } 303 return findAllDurableSubMessagesStatement; 304 } 305 306 public String getNextDurableSubscriberMessageStatement() { 307 if (nextDurableSubscriberMessageStatement == null) { 308 nextDurableSubscriberMessageStatement = "SELECT M.ID, M.MSG FROM " 309 + getFullMessageTableName() 310 + " M, " 311 + getFullAckTableName() 312 + " D " 313 + " WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=?" 314 + " AND M.CONTAINER=D.CONTAINER AND M.ID > ?" 315 + " ORDER BY M.ID "; 316 } 317 return nextDurableSubscriberMessageStatement; 318 } 319 320 /** 321 * @return the durableSubscriberMessageCountStatement 322 */ 323 324 public String getDurableSubscriberMessageCountStatement() { 325 if (durableSubscriberMessageCountStatement == null) { 326 durableSubscriberMessageCountStatement = "SELECT COUNT(*) FROM " 327 + getFullMessageTableName() 328 + " M, " 329 + getFullAckTableName() 330 + " D " 331 + " WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=?" 332 + " AND M.CONTAINER=D.CONTAINER " 333 + " AND M.ID >" 334 + " ( SELECT LAST_ACKED_ID FROM " + getFullAckTableName() 335 + " WHERE CONTAINER=D.CONTAINER AND CLIENT_ID=D.CLIENT_ID" 336 + " AND SUB_NAME=D.SUB_NAME )"; 337 338 } 339 return durableSubscriberMessageCountStatement; 340 } 341 342 public String getDurableSubscriberMessageCountStatementWithPriority() { 343 if (durableSubscriberMessageCountStatementWithPriority == null) { 344 durableSubscriberMessageCountStatementWithPriority = "SELECT COUNT(*) FROM " 345 + getFullMessageTableName() 346 + " M, " 347 + getFullAckTableName() 348 + " D " 349 + " WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=?" 350 + " AND M.CONTAINER=D.CONTAINER " 351 + " AND M.PRIORITY=D.PRIORITY " 352 + " AND M.ID > D.LAST_ACKED_ID"; 353 } 354 355 return durableSubscriberMessageCountStatementWithPriority; 356 } 357 358 public String getFindAllDestinationsStatement() { 359 if (findAllDestinationsStatement == null) { 360 findAllDestinationsStatement = "SELECT DISTINCT CONTAINER FROM " + getFullAckTableName(); 361 } 362 return findAllDestinationsStatement; 363 } 364 365 public String getRemoveAllMessagesStatement() { 366 if (removeAllMessagesStatement == null) { 367 removeAllMessagesStatement = "DELETE FROM " + getFullMessageTableName() + " WHERE CONTAINER=?"; 368 } 369 return removeAllMessagesStatement; 370 } 371 372 public String getRemoveAllSubscriptionsStatement() { 373 if (removeAllSubscriptionsStatement == null) { 374 removeAllSubscriptionsStatement = "DELETE FROM " + getFullAckTableName() + " WHERE CONTAINER=?"; 375 } 376 return removeAllSubscriptionsStatement; 377 } 378 379 public String getDeleteOldMessagesStatementWithPriority() { 380 if (deleteOldMessagesStatementWithPriority == null) { 381 deleteOldMessagesStatementWithPriority = "DELETE FROM " + getFullMessageTableName() 382 + " WHERE ( EXPIRATION<>0 AND EXPIRATION<?)" 383 + " OR (ID <= " 384 + " ( SELECT min(" + getFullAckTableName() + ".LAST_ACKED_ID)" 385 + " FROM " + getFullAckTableName() + " WHERE " 386 + getFullAckTableName() + ".CONTAINER=" 387 + getFullMessageTableName() + ".CONTAINER" 388 + " AND " + getFullAckTableName() + ".PRIORITY=" + getFullMessageTableName() + ".PRIORITY )" 389 + " )"; 390 } 391 return deleteOldMessagesStatementWithPriority; 392 } 393 394 public String getDeleteOldMessagesStatement() { 395 if (deleteOldMessagesStatement == null) { 396 deleteOldMessagesStatement = "DELETE FROM " + getFullMessageTableName() 397 + " WHERE ( EXPIRATION<>0 AND EXPIRATION<?)" 398 + " OR (ID <= " 399 + " ( SELECT min(" + getFullAckTableName() + ".LAST_ACKED_ID)" 400 + " FROM " + getFullAckTableName() + " WHERE " 401 + getFullAckTableName() + ".CONTAINER=" 402 + getFullMessageTableName() + ".CONTAINER )" 403 + " )"; 404 405 } 406 return deleteOldMessagesStatement; 407 } 408 409 410 public String getLockCreateStatement() { 411 if (lockCreateStatement == null) { 412 lockCreateStatement = "SELECT * FROM " + getFullLockTableName(); 413 if (useLockCreateWhereClause) { 414 lockCreateStatement += " WHERE ID = 1"; 415 } 416 lockCreateStatement += " FOR UPDATE"; 417 } 418 return lockCreateStatement; 419 } 420 421 public String getLockUpdateStatement() { 422 if (lockUpdateStatement == null) { 423 lockUpdateStatement = "UPDATE " + getFullLockTableName() + " SET TIME = ? WHERE ID = 1"; 424 } 425 return lockUpdateStatement; 426 } 427 428 /** 429 * @return the destinationMessageCountStatement 430 */ 431 public String getDestinationMessageCountStatement() { 432 if (destinationMessageCountStatement == null) { 433 destinationMessageCountStatement = "SELECT COUNT(*) FROM " + getFullMessageTableName() 434 + " WHERE CONTAINER=?"; 435 } 436 return destinationMessageCountStatement; 437 } 438 439 /** 440 * @return the findNextMessagesStatement 441 */ 442 public String getFindNextMessagesStatement() { 443 if (findNextMessagesStatement == null) { 444 findNextMessagesStatement = "SELECT ID, MSG FROM " + getFullMessageTableName() 445 + " WHERE CONTAINER=? AND ID > ? ORDER BY ID"; 446 } 447 return findNextMessagesStatement; 448 } 449 450 /** 451 * @return the findNextMessagesStatement 452 */ 453 public String getFindNextMessagesByPriorityStatement() { 454 if (findNextMessagesByPriorityStatement == null) { 455 findNextMessagesByPriorityStatement = "SELECT ID, MSG FROM " + getFullMessageTableName() 456 + " WHERE CONTAINER=?" 457 + " AND ((ID > ? AND PRIORITY = ?) OR PRIORITY < ?)" 458 + " ORDER BY PRIORITY DESC, ID"; 459 } 460 return findNextMessagesByPriorityStatement; 461 } 462 463 /** 464 * @return the lastAckedDurableSubscriberMessageStatement 465 */ 466 public String getLastAckedDurableSubscriberMessageStatement() { 467 if (lastAckedDurableSubscriberMessageStatement == null) { 468 lastAckedDurableSubscriberMessageStatement = "SELECT MAX(LAST_ACKED_ID) FROM " 469 + getFullAckTableName() 470 + " WHERE CONTAINER=? AND CLIENT_ID=? AND SUB_NAME=?"; 471 } 472 return lastAckedDurableSubscriberMessageStatement; 473 } 474 475 public String getSelectDurablePriorityAckStatement() { 476 if (selectDurablePriorityAckStatement == null) { 477 selectDurablePriorityAckStatement = "SELECT LAST_ACKED_ID FROM " + getFullAckTableName() 478 + " WHERE CONTAINER=? AND CLIENT_ID=? AND SUB_NAME=?" 479 + " AND PRIORITY = ?"; 480 } 481 return selectDurablePriorityAckStatement; 482 } 483 484 public String getInsertDurablePriorityAckStatement() { 485 if (insertDurablePriorityAckStatement == null) { 486 insertDurablePriorityAckStatement = "INSERT INTO " 487 + getFullAckTableName() 488 + "(CONTAINER, CLIENT_ID, SUB_NAME, PRIORITY)" 489 + " VALUES (?, ?, ?, ?)"; 490 } 491 return insertDurablePriorityAckStatement; 492 } 493 494 495 public String getUpdateDurableLastAckStatement() { 496 if (updateDurableLastAckStatement == null) { 497 updateDurableLastAckStatement = "UPDATE " + getFullAckTableName() 498 + " SET LAST_ACKED_ID = ? WHERE CONTAINER=? AND CLIENT_ID=? AND SUB_NAME=?"; 499 } 500 return updateDurableLastAckStatement; 501 } 502 503 public String getFullMessageTableName() { 504 return getTablePrefix() + getMessageTableName(); 505 } 506 507 public String getFullAckTableName() { 508 return getTablePrefix() + getDurableSubAcksTableName(); 509 } 510 511 public String getFullLockTableName() { 512 return getTablePrefix() + getLockTableName(); 513 } 514 515 /** 516 * @return Returns the containerNameDataType. 517 */ 518 public String getContainerNameDataType() { 519 return containerNameDataType; 520 } 521 522 /** 523 * @param containerNameDataType The containerNameDataType to set. 524 */ 525 public void setContainerNameDataType(String containerNameDataType) { 526 this.containerNameDataType = containerNameDataType; 527 } 528 529 /** 530 * @return Returns the messageDataType. 531 */ 532 public String getBinaryDataType() { 533 return binaryDataType; 534 } 535 536 /** 537 * @param messageDataType The messageDataType to set. 538 */ 539 public void setBinaryDataType(String messageDataType) { 540 this.binaryDataType = messageDataType; 541 } 542 543 /** 544 * @return Returns the messageTableName. 545 */ 546 public String getMessageTableName() { 547 return messageTableName; 548 } 549 550 /** 551 * @param messageTableName The messageTableName to set. 552 */ 553 public void setMessageTableName(String messageTableName) { 554 this.messageTableName = messageTableName; 555 } 556 557 /** 558 * @return Returns the msgIdDataType. 559 */ 560 public String getMsgIdDataType() { 561 return msgIdDataType; 562 } 563 564 /** 565 * @param msgIdDataType The msgIdDataType to set. 566 */ 567 public void setMsgIdDataType(String msgIdDataType) { 568 this.msgIdDataType = msgIdDataType; 569 } 570 571 /** 572 * @return Returns the sequenceDataType. 573 */ 574 public String getSequenceDataType() { 575 return sequenceDataType; 576 } 577 578 /** 579 * @param sequenceDataType The sequenceDataType to set. 580 */ 581 public void setSequenceDataType(String sequenceDataType) { 582 this.sequenceDataType = sequenceDataType; 583 } 584 585 /** 586 * @return Returns the tablePrefix. 587 */ 588 public String getTablePrefix() { 589 return tablePrefix; 590 } 591 592 /** 593 * @param tablePrefix The tablePrefix to set. 594 */ 595 public void setTablePrefix(String tablePrefix) { 596 this.tablePrefix = tablePrefix; 597 } 598 599 /** 600 * @return Returns the durableSubAcksTableName. 601 */ 602 public String getDurableSubAcksTableName() { 603 return durableSubAcksTableName; 604 } 605 606 /** 607 * @param durableSubAcksTableName The durableSubAcksTableName to set. 608 */ 609 public void setDurableSubAcksTableName(String durableSubAcksTableName) { 610 this.durableSubAcksTableName = durableSubAcksTableName; 611 } 612 613 public String getLockTableName() { 614 return lockTableName; 615 } 616 617 public void setLockTableName(String lockTableName) { 618 this.lockTableName = lockTableName; 619 } 620 621 public String getLongDataType() { 622 return longDataType; 623 } 624 625 public void setLongDataType(String longDataType) { 626 this.longDataType = longDataType; 627 } 628 629 public String getStringIdDataType() { 630 return stringIdDataType; 631 } 632 633 public void setStringIdDataType(String stringIdDataType) { 634 this.stringIdDataType = stringIdDataType; 635 } 636 637 public void setUseExternalMessageReferences(boolean useExternalMessageReferences) { 638 this.useExternalMessageReferences = useExternalMessageReferences; 639 } 640 641 public boolean isUseExternalMessageReferences() { 642 return useExternalMessageReferences; 643 } 644 645 public void setAddMessageStatement(String addMessageStatment) { 646 this.addMessageStatement = addMessageStatment; 647 } 648 649 public void setCreateDurableSubStatement(String createDurableSubStatment) { 650 this.createDurableSubStatement = createDurableSubStatment; 651 } 652 653 public void setCreateSchemaStatements(String[] createSchemaStatments) { 654 this.createSchemaStatements = createSchemaStatments; 655 } 656 657 public void setDeleteOldMessagesStatement(String deleteOldMessagesStatment) { 658 this.deleteOldMessagesStatement = deleteOldMessagesStatment; 659 } 660 661 public void setDeleteOldMessagesStatementWithPriority(String deleteOldMessagesStatmentWithPriority) { 662 this.deleteOldMessagesStatementWithPriority = deleteOldMessagesStatmentWithPriority; 663 } 664 665 public void setDeleteSubscriptionStatement(String deleteSubscriptionStatment) { 666 this.deleteSubscriptionStatement = deleteSubscriptionStatment; 667 } 668 669 public void setDropSchemaStatements(String[] dropSchemaStatments) { 670 this.dropSchemaStatements = dropSchemaStatments; 671 } 672 673 public void setFindAllDestinationsStatement(String findAllDestinationsStatment) { 674 this.findAllDestinationsStatement = findAllDestinationsStatment; 675 } 676 677 public void setFindAllDurableSubMessagesStatement(String findAllDurableSubMessagesStatment) { 678 this.findAllDurableSubMessagesStatement = findAllDurableSubMessagesStatment; 679 } 680 681 public void setFindAllDurableSubsStatement(String findAllDurableSubsStatment) { 682 this.findAllDurableSubsStatement = findAllDurableSubsStatment; 683 } 684 685 public void setFindAllMessagesStatement(String findAllMessagesStatment) { 686 this.findAllMessagesStatement = findAllMessagesStatment; 687 } 688 689 public void setFindDurableSubStatement(String findDurableSubStatment) { 690 this.findDurableSubStatement = findDurableSubStatment; 691 } 692 693 public void setFindLastSequenceIdInAcksStatement(String findLastSequenceIdInAcks) { 694 this.findLastSequenceIdInAcksStatement = findLastSequenceIdInAcks; 695 } 696 697 public void setFindLastSequenceIdInMsgsStatement(String findLastSequenceIdInMsgs) { 698 this.findLastSequenceIdInMsgsStatement = findLastSequenceIdInMsgs; 699 } 700 701 public void setFindMessageSequenceIdStatement(String findMessageSequenceIdStatment) { 702 this.findMessageSequenceIdStatement = findMessageSequenceIdStatment; 703 } 704 705 public void setFindMessageStatement(String findMessageStatment) { 706 this.findMessageStatement = findMessageStatment; 707 } 708 709 public void setFindMessageByIdStatement(String findMessageByIdStatement) { 710 this.findMessageByIdStatement = findMessageByIdStatement; 711 } 712 713 public void setRemoveAllMessagesStatement(String removeAllMessagesStatment) { 714 this.removeAllMessagesStatement = removeAllMessagesStatment; 715 } 716 717 public void setRemoveAllSubscriptionsStatement(String removeAllSubscriptionsStatment) { 718 this.removeAllSubscriptionsStatement = removeAllSubscriptionsStatment; 719 } 720 721 public void setRemoveMessageStatment(String removeMessageStatement) { 722 this.removeMessageStatement = removeMessageStatement; 723 } 724 725 public void setUpdateLastPriorityAckRowOfDurableSubStatement(String updateLastPriorityAckRowOfDurableSubStatement) { 726 this.updateLastPriorityAckRowOfDurableSubStatement = updateLastPriorityAckRowOfDurableSubStatement; 727 } 728 729 public void setUpdateMessageStatement(String updateMessageStatment) { 730 this.updateMessageStatement = updateMessageStatment; 731 } 732 733 public boolean isUseLockCreateWhereClause() { 734 return useLockCreateWhereClause; 735 } 736 737 public void setUseLockCreateWhereClause(boolean useLockCreateWhereClause) { 738 this.useLockCreateWhereClause = useLockCreateWhereClause; 739 } 740 741 public void setLockCreateStatement(String lockCreateStatement) { 742 this.lockCreateStatement = lockCreateStatement; 743 } 744 745 public void setLockUpdateStatement(String lockUpdateStatement) { 746 this.lockUpdateStatement = lockUpdateStatement; 747 } 748 749 /** 750 * @param findDurableSubMessagesStatement the 751 * findDurableSubMessagesStatement to set 752 */ 753 public void setFindDurableSubMessagesStatement(String findDurableSubMessagesStatement) { 754 this.findDurableSubMessagesStatement = findDurableSubMessagesStatement; 755 } 756 757 /** 758 * @param nextDurableSubscriberMessageStatement the nextDurableSubscriberMessageStatement to set 759 */ 760 public void setNextDurableSubscriberMessageStatement(String nextDurableSubscriberMessageStatement) { 761 this.nextDurableSubscriberMessageStatement = nextDurableSubscriberMessageStatement; 762 } 763 764 /** 765 * @param durableSubscriberMessageCountStatement the durableSubscriberMessageCountStatement to set 766 */ 767 public void setDurableSubscriberMessageCountStatement(String durableSubscriberMessageCountStatement) { 768 this.durableSubscriberMessageCountStatement = durableSubscriberMessageCountStatement; 769 } 770 771 public void setDurableSubscriberMessageCountStatementWithPriority(String durableSubscriberMessageCountStatementWithPriority) { 772 this.durableSubscriberMessageCountStatementWithPriority = durableSubscriberMessageCountStatementWithPriority; 773 } 774 775 /** 776 * @param findNextMessagesStatement the findNextMessagesStatement to set 777 */ 778 public void setFindNextMessagesStatement(String findNextMessagesStatement) { 779 this.findNextMessagesStatement = findNextMessagesStatement; 780 } 781 782 /** 783 * @param destinationMessageCountStatement the destinationMessageCountStatement to set 784 */ 785 public void setDestinationMessageCountStatement(String destinationMessageCountStatement) { 786 this.destinationMessageCountStatement = destinationMessageCountStatement; 787 } 788 789 /** 790 * @param lastAckedDurableSubscriberMessageStatement the lastAckedDurableSubscriberMessageStatement to set 791 */ 792 public void setLastAckedDurableSubscriberMessageStatement( 793 String lastAckedDurableSubscriberMessageStatement) { 794 this.lastAckedDurableSubscriberMessageStatement = lastAckedDurableSubscriberMessageStatement; 795 } 796 797 798 public void setLastProducerSequenceIdStatement(String lastProducerSequenceIdStatement) { 799 this.lastProducerSequenceIdStatement = lastProducerSequenceIdStatement; 800 } 801 802 public void setSelectDurablePriorityAckStatement(String selectDurablePriorityAckStatement) { 803 this.selectDurablePriorityAckStatement = selectDurablePriorityAckStatement; 804 } 805 806 public void setInsertDurablePriorityAckStatement(String insertDurablePriorityAckStatement) { 807 this.insertDurablePriorityAckStatement = insertDurablePriorityAckStatement; 808 } 809 810 public void setUpdateDurableLastAckStatement(String updateDurableLastAckStatement) { 811 this.updateDurableLastAckStatement = updateDurableLastAckStatement; 812 } 813 }