IMutexServiceControl mutexServiceControl = FrameWorkClientUtils.createMutexServiceControl();
try
{
Map map = mutexServiceControl.batchRequestObjIDForUpdate(ids);
Iterator lt = ids.iterator();
while (lt.hasNext())
{
String id = (String)lt.next();
Object value = map.get(id);
if ((value != null) && (!Boolean.valueOf(value.toString()).booleanValue()))
{
Throwable mutexException = new EASBizException(new NumericExceptionSubItem("100", EASResource.getString("com.kingdee.eas.framework.FrameWorkResource.Error_ObjectUpdateLock_Request")));
exceptionMap.put(id, mutexException);
exceptionIds.add(id);
lt.remove();
}
}
if (ids.size() > 0)
{
BatchExecuteParamsEntry[] paramEntries = new BatchExecuteParamsEntry[ids.size()];
for (int i = 0; i < ids.size(); i++)
{
if (ids.get(i) == null)
continue;
IObjectPK pk = new ObjectStringPK(ids.get(i).toString());
BatchExecuteParamsEntry entry = new BatchExecuteParamsEntry(new Class[] { IObjectPK.class }, new Object[] { pk });
paramEntries[i] = entry;
}
BatchExecuteResult result = getBizInterface().batchExecute("delete", new Class[] { IObjectPK.class }, paramEntries);
ex = result.getExceptions();
for (int i = 0; i < ex.length; i++)
{
if (ex[i] == null)
continue;
exceptionMap.put(ids.get(i), ex[i]);
exceptionIds.add(ids.get(i));
}
}
}
finally
{
mutexServiceControl.batchReleaseObjIDForUpdate(ids);
}
Interface IMutexServiceControl
-
All Known Implementing Classes:
- MutexServiceControl
-
public interface
IMutexServiceControl
-
Version:
- eas523 Author:
- wxyxl, wen_zhang
Method Summary | |
java.util.Map | batchObjectUpdateLockService(java.util.List requestIDList, java.util.List releaseIDList) 批量互斥服务,包括批量释放锁和批量申请锁 |
void | batchReleaseObjIDForUpdate(java.util.List idList) 批量释放数据互斥锁 |
java.util.Map | batchRequestObjIDForUpdate(java.util.List idList) 批量申请数据互斥锁 |
void | clearAllMutex() 清空所有功能互斥锁 |
void | clearAllObjId() 清空所有数据互斥锁 |
void | delMutex(java.lang.String id) 删除功能互斥锁 |
void | delObjIDForUpdate(java.lang.String id) |
long | getCurrentTime() 获取服务器当前时间 |
IObjectValue | getDynObject(java.lang.String objID) 根据fid获取实体值对象 |
java.util.Map | getMutexList() 获取所有功能互斥锁 |
java.lang.String | getObjectNumber(java.lang.String objId) 根据fid获取实体的number |
java.util.HashMap | getObjIDForUpdateList() |
void | releaseAllFuncMutexAndObjLocks(java.lang.String sessionID) 释放当前session占用的所有功能互斥和数据互斥锁 |
void | releaseMutex(Uuid requestId) 释放功能互斥锁 |
void | releaseObjIDForUpdate(java.lang.String id) 释放数据互斥锁 |
void | releaseObjIDForUpdate(java.lang.String id, Uuid uuid) 释放数据互斥锁 |
boolean | requestBizObjIDForUpdate(java.lang.String id) 申请数据互斥锁 |
boolean | requestMutex(MutexParameter mutexParameter) 申请功能互斥锁 |
boolean | requestObjIDForUpdate(java.lang.String id) 申请数据互斥 |
boolean | requestObjIDForUpdate(java.lang.String id, java.lang.String userName) 申请数据互斥锁 |
boolean | requestObjIDForUpdate(java.lang.String id, java.lang.String userName, java.lang.String dcName) 申请数据互斥锁 |
boolean | requestObjIDForUpdate(java.lang.String id, java.lang.String userName, java.lang.String dcName, java.lang.String objectDescription) 申请数据互斥锁 |
void | setContext(Context ctx) Deprecated. |