/** * This method allows to create all queries used by the push listener framework * * @param registryTableName the name of the table storing information about the push listener * entries * @param clusterSize number of the members in the cluster * @param serverIndex unique index of the instance in the cluster */ private void createQueries(String registryTableName, int clusterSize, int serverIndex) { String segmentationClause = null; String queryReadEntries = MessageFormat.format(SQL_READ_ENTRIES, new Object[] {columnSuffix, registryTableName}); StringBuffer queryReadChangedEntries = new StringBuffer(queryReadEntries); StringBuffer queryReadActiveEntries = new StringBuffer(queryReadEntries); StringBuffer queryDeleteEntries = new StringBuffer( MessageFormat.format(SQL_DELETE_ENTRIES, new Object[] {registryTableName})); if (clusterSize > 1) { segmentationClause = MessageFormat.format( SQL_SEGMENTATION_CLAUSE, new Object[] {String.valueOf(clusterSize), String.valueOf(serverIndex)}); queryReadChangedEntries.append(segmentationClause).append(" and "); queryReadActiveEntries.append(segmentationClause).append(" and "); queryDeleteEntries.append(" and ").append(segmentationClause); } queryReadChangedEntries.append(SQL_WHERECLAUSE_STATUS); queryDesc.setReadChangedEntriesQuery(queryReadChangedEntries.toString()); queryReadActiveEntries.append(SQL_WHERECLAUSE_ACTIVE_ENTRIES); queryDesc.setReadActiveEntriesQuery(queryReadActiveEntries.toString()); queryDesc.setReadEntryQuery( MessageFormat.format(SQL_READ_ENTRY, new Object[] {columnSuffix, registryTableName})); queryDesc.setDeleteEntryQuery( MessageFormat.format(SQL_DELETE_ENTRY, new Object[] {registryTableName})); queryDesc.setDeleteEntriesQuery(queryDeleteEntries.toString()); queryDesc.setUpdateEntryQuery( MessageFormat.format(SQL_UPDATE_ENTRY, new Object[] {registryTableName, updateSuffix})); queryDesc.setUpdateStatusQuery( MessageFormat.format(SQL_UPDATE_STATUS, new Object[] {registryTableName})); queryDesc.setInsertEntryQuery( MessageFormat.format( SQL_INSERT_ENTRY, new Object[] {registryTableName, columnSuffix, placeholderSuffix})); }