Revision 7208
Added by ben leinfelder over 12 years ago
src/edu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService.java | ||
---|---|---|
211 | 211 |
logMetacat.debug("Initialized systemMetadata"); |
212 | 212 |
|
213 | 213 |
// Get a reference to the shared identifiers set as a cluster member |
214 |
// NOTE: this takes a long time to complete |
|
214 | 215 |
identifiers = Hazelcast.getSet(identifiersSet); |
215 | 216 |
identifiers.addAll(loadAllKeys()); |
216 | 217 |
|
... | ... | |
235 | 236 |
|
236 | 237 |
// make sure we have all metadata locally |
237 | 238 |
try { |
238 |
logMetacat.debug("Temporarily shutting down which resynching system metadata"); |
|
239 |
|
|
240 |
// pause to make us not own any keys |
|
241 |
hzInstance.getLifecycleService().pause(); |
|
242 | 239 |
// synch on restart |
243 | 240 |
resynchInThread(); |
244 | 241 |
} catch (Exception e) { |
... | ... | |
512 | 509 |
saveLocally(sm); |
513 | 510 |
} else { |
514 | 511 |
logMetacat.error("SystemMetadata for pid is null: " + pid.getValue()); |
512 |
Partition partition = hzInstance.getPartitionService().getPartition(pid); |
|
513 |
Member owner = partition.getOwner(); |
|
514 |
owner.localMember(); |
|
515 |
logMetacat.warn("owner of pid: " + pid.getValue() + " isLocal: " + owner.localMember() + " at " + owner.getInetSocketAddress().getAddress()); |
|
516 |
|
|
515 | 517 |
} |
516 | 518 |
} else { |
517 | 519 |
logMetacat.debug("shared pid already exisits locally: " + pid.getValue()); |
518 | 520 |
} |
519 | 521 |
} |
520 |
// now we can take ownership of keys |
|
521 |
hzInstance.getLifecycleService().resume(); |
|
522 | 522 |
} |
523 | 523 |
|
524 | 524 |
private void resynchInThread() { |
Also available in: Unified diff
remove pause/resume - seemed to make metacat just hang on SM retrieval. Add more logging when returned SM is null -- want to make sure it is becuase the local node "owns" the pid key even though there is no value for it.