1.1

Table Of Contents
import java.io.IOException;
import java.sql.ResultSetMetaData;
import java.util.Iterator;
import java.util.List;
import com.vmware.sqlfire.callbacks.AsyncEventListener;
import com.vmware.sqlfire.callbacks.Event;
public class TestAsyncEvenListener implements AsyncEventListener
{
private FileOutputStream fos;
public void close()
{
try {
this.fos.close();
}
catch (IOException e) {
//handle exception
}
}
public void init(String filePath)
{
try {
this.fos = new FileOutputStream(filePath);
}
catch (FileNotFoundException e) {
//handle exception
}
}
public boolean processEvents(List<Event> events)
{
try {
Iterator<Event> itr = events.iterator();
Event.Type evType = null;
for (Event event : events) {
ResultSetMetaData rsmd = event.getResultSetMetaData();
String schemaName = rsmd.getSchemaName(1 /*from column # 1*/);
String tableName = rsmd.getTableName(1 /*from column # 1*/);
evType = event.getType();
//The primary key could be either a single value for single column
// primary key or could be an Object[] in case of Composite primary
key.
//For tables without primary key defined, the value returned is a
Long
// which uniquely identifies the row. User can map rows
created/updated/deleted
// using this value.
Object pk = event.getPrimaryKey();
switch (evType) {
case AFTER_INSERT:
List<Object> rowInserted = event.getNewRow();
int i =1;
for (Object colVal : rowInserted) {
String columnName = rsmd.getColumnName(i);
// use the column name & value given by colVal to process the
195
Handling DML Events Asynchronously