|
TestRunner package com.gs.example.query; import java.util.Properties; import net.jini.core.entry.Entry; import net.jini.core.lease.Lease; import com.j_spaces.core.IJSpace; import com.j_spaces.core.client.SQLQuery; import com.j_spaces.core.client.SpaceFinder; import com.j_spaces.core.client.SpaceURL; public class TestRunner { public static void main(String[] args) { int num = 1000; try { // Populate data into the space Properties spaceProperties = new Properties(); spaceProperties.setProperty(SpaceURL.PROPERTIES_SPACE_URL_ARG+". "+SpaceURL.NO_WRITE_LEASE, "true"); spaceProperties.setProperty(SpaceURL.PROPERTIES_SPACE_URL_ARG+". "+SpaceURL.GROUPS, "gigaspaces-5.1EE"); spaceProperties.setProperty(SpaceURL.PROPERTIES_SPACE_URL_ARG+". "+SpaceURL.SCHEMA_NAME,"QueryFilter"); System.out.println("using space configuration overrides:\n" + spaceProperties); IJSpace space = (IJSpace) SpaceFinder.find("/./IMDG", spaceProperties); System.out.println(" ---> Start write " + num + " entries" ); for(long i = 0; i < num; i++ ) { Entity entry = new Entity(i); entry.setAccountNumber(i); entry.setFlags(i); space.write(entry, null, Lease.FOREVER); } System.out.println(" ---> Finish write " + num + " entries" ); System.out.println(" ---> Start execute select sum(accountNumber) from Entity where flags <= 5 " + num + " entries" ); SQLQuery template = new SQLQuery(Entity.class.getName(),"flags <= 5"); SumTask sumTask = new SumTask("accountNumber", template); System.out.println(" ---> Read Multiple "); // readMultiple returns the results from each partition // with read multiple the results would be cached for a certain period of time // and will deleted on teh background Entry[] results = space.readMultiple(sumTask,null,Integer.MAX_VALUE); // execute on client will calculate the total sum sumTask.executeOnClient(results); System.out.println(" ---> Total Sum = " + sumTask.getTotalSum()); System.out.println(" ---> Take Multiple "); // with take multiple the results would be deleted immediatly results = space.takeMultiple(sumTask,null,Integer.MAX_VALUE); for (int i=0; i < results.length; i++ ) System.out.println(" ---> sum(accountNumber) = " + ((SumTask)results[i]).getResult() ); sumTask.executeOnClient(results); System.out.println(" ---> Total Sum = " + sumTask.getTotalSum()); } catch (Exception e) { e.printStackTrace(); } } } |
GigaSpaces 6.0 Documentation Contents (Current Page in Bold)
(works on Firefox 2 and Internet Explorer 7)
Labels
(None)