public void getAllProducts(BlockingQueue<Transaction> debitCollection, BlockingQueue<Transaction> creditCollection,
			BlockingQueue<Transaction> deadLetterCollection) throws InterruptedException {

		Statement stmt = new SimpleStatement("Select * from " + tableNameProduct);
		stmt.setFetchSize(500);
		ResultSet resultSet = this.session.execute(stmt);

		Iterator<Row> iterator = resultSet.iterator();

		while (iterator.hasNext()) {

			Row row = iterator.next();

			Transaction transaction = createTransactionFromRow(row);
			
			try {
				if (transaction.getType().equalsIgnoreCase(TransactionType.DEBIT.getValue())) {
					debitCollection.put(transaction);

				} else if (transaction.getType().equalsIgnoreCase(TransactionType.CREDIT.getValue())) {
					creditCollection.put(transaction);
				}
			} catch (InterruptedException e) {
				logger.warn("Could not process transaction due to error : " + e.getMessage());
				
				try {
					deadLetterCollection.put(transaction);
				} catch (InterruptedException ie) {
					logger.error("Could not process add transaction to dead letter queue due to error : " + e.getMessage());
					throw ie;
				}
			}
			TOTAL_PRODUCTS.incrementAndGet();
		}
	}