[jboss-user] [JBossCache] - Re: TreeCache CacheLoader Issue
robnor
do-not-reply at jboss.com
Tue May 8 06:32:29 EDT 2007
My current workaround:
| public static void storeTracker(ImportTracker tracker)
| {
| logDebug("storeTracker() - start");
|
| try
| {
| if (useTreeCache)
| {
| logDebug("ImportTracker - PUT");
| boolean transactionActive = false;
| try
| {
| TreeCacheMBean cache = CacheHelper.getImportCache();
| Transaction trans = CacheHelper.getImportCache().getTransactionManager().getTransaction();
| if (trans != null)
| {
| logDebug("TRANSACTION STATUS: " + getTransactionStatusString(trans.getStatus()));
| if (trans.getStatus() != Status.STATUS_COMMITTED)
| {
| transactionActive = true;
| }
| }
| else
| {
| logDebug("NO TRANSACTION");
| transactionActive = false;
| }
| }
| catch (SystemException ex)
| {
| slog.error("Transaction Error!", ex);
| }
|
| CacheHelper.getImportCache().get(nodename).put("importTracker", tracker);
|
|
| Fqn fqn = CacheHelper.getImportCache().get(nodename).getFqn();
| try
| {
| ImportTracker tr = (ImportTracker) CacheHelper.getImportCache().get(fqn, "importTracker");
| ImportTracker tr2 = (ImportTracker) CacheHelper.getImportCache().getCacheLoader().get(fqn).get("importTracker");
| if (tracker.equals(tr))
| {
| logDebug("Tracker objects are EQUAL");
| }
| else
| {
| logDebug("Tracker object are NOT EQUAL");
| logDebug("Putting updated Tracker hard in cacheloader");
| if (!transactionActive)
| {
| CacheHelper.getImportCache().getInstance().getCacheLoader().put(fqn, "importTracker", tracker);
| logDebug("Done!");
| }
| }
| logDebug("COMPARING WITH Tracker received from cacheloader");
| if (tracker.equals(tr2))
| {
| logDebug("Tracker objects are EQUAL");
| }
| else
| {
| logDebug("Tracker object are NOT EQUAL");
| logDebug("Putting updated Tracker hard in cacheloader");
| if (!transactionActive)
| {
| CacheHelper.getImportCache().getInstance().getCacheLoader().put(fqn, "importTracker", tracker);
| logDebug("Done!");
| }
| }
|
|
| }
| catch (Exception ex)
| {
| ex.printStackTrace();
| }
| logDebug("PUT - Performed!");
| }
| else
| {
| // === this should not be necessary as aop detects setting on methods ===
| CacheHelper.getImportPojoCache().putObject(nodename, tracker);
| }
| }
| catch (CacheException ex)
| {
| slog.error("Failed to store importtracker in cache", ex);
| }
| logDebug("storeTracker() - stop");
|
| }
|
|
| public static ImportTracker getTracker()
| {
| ImportTracker retval = null;
| if (useTreeCache)
| {
| TreeCacheMBean cache = CacheHelper.getImportCache();
|
| if (!cache.exists(nodename, "importTracker"))
| {
| logDebug(nodename + "/importTracker does not exist, creating a new");
| ImportTracker tracker = new ImportTracker();
| try
| {
| cache.put(nodename, "importTracker", tracker);
| retval = (ImportTracker) cache.get(nodename).get("importTracker");
| }
| catch (CacheException e)
| {
| slog.error("Failed to retrieve ImportTracker", e);
| }
| }
| else
| {
| try
| {
| retval = (ImportTracker) cache.get(nodename).get("importTracker");
| }
| catch (CacheException e)
| {
| slog.error(e);
| }
| }
| }
| else
| {
| PojoCacheMBean cache = CacheHelper.getImportPojoCache();
|
| if (!cache.exists(nodename, "importTracker"))
| {
| slog.debug(nodename + "/importTracker does not exist, creating a new");
| ImportTracker tracker = new ImportTracker();
| try
| {
| cache.putObject(nodename, tracker);
| retval = (ImportTracker) cache.getObject(nodename);
| }
| catch (CacheException e)
| {
| slog.error("Failed to create ImportTracker", e);
| }
| }
| else
| {
| try
| {
| retval = (ImportTracker) cache.getObject(nodename);
| }
| catch (CacheException e)
| {
| slog.error(e);
| }
| }
| }
| return retval;
| }
|
|
plese dont look at the pojocahce stuff, it will not be used atm
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4043882#4043882
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043882
More information about the jboss-user
mailing list