use of cbit.vcell.solver.VCSimulationIdentifier in project vcell by virtualcell.
the class TestMissingSimData method doQuery.
private static Hashtable<KeyValue, UserLoginInfo> doQuery(String connectURL, String dbSchemaUser, String dbPassword) throws Exception {
// String itemSelectSQL = " select vc_userinfo.userid,vc_userinfo.id userkey,vc_userinfo.digestpw,vc_simulation.id simjobsimref,vc_softwareversion.softwareversion ";
String itemSelectSQL = " select vc_userinfo.userid,vc_userinfo.id userkey,vc_userinfo.digestpw,vc_simulation.id simjobsimref ";
String sqlPart = " from missingdata,vc_simulation RIGHT OUTER JOIN vc_softwareversion ON vc_softwareversion.versionableref = vc_simulation.id,vc_userinfo,vc_softwareversion " + // " from vc_simulation,vc_userinfo,vc_biomodelsim,vc_biomodel "+
" where " + // " vc_userinfo.userid='les' and "+
" vc_userinfo.id = vc_simulation.ownerref and " + // " to_char(vc_biomodel.versiondate,'DD-MM-YYYY')='10-05-2015' " +
" missingdata.simjobsimref = vc_simulation.id and " + " (missingdata.dataexists='false') " + " and missingdata.notes is null " + // " and (missingdata.notes like '%too_many_jobs%')" +
" and vc_simulation.parentsimref is null " + " and (softwareversion is null or regexp_substr(softwareversion,'^((release)|(rel)|(alpha)|(beta))_version_([[:digit:]]+\\.?)+_build_([[:digit:]]+\\.?)+',1,1,'i') is not null) " + " order by vc_userinfo.userid";
// (mdt.dataexists = 'false' or mdt.dataexists like 'error - %') and
// (mdt.notes is null or mdt.notes not like 'reran OK%') and
Hashtable<KeyValue, UserLoginInfo> keyUserLoginInfoHash = new Hashtable<>();
Connection con = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = java.sql.DriverManager.getConnection(connectURL, dbSchemaUser, dbPassword);
con.setAutoCommit(false);
Statement queryStatement = con.createStatement();
// Get Count
ResultSet rset = queryStatement.executeQuery("select count(*) " + sqlPart);
rset.next();
int totalCount = rset.getInt(1);
rset.close();
// Get sims
rset = queryStatement.executeQuery(itemSelectSQL + sqlPart);
UserLoginInfo userLoginInfo = null;
int currentCount = 1;
while (rset.next()) {
KeyValue simJobSimRef = new KeyValue(rset.getString("simjobsimref"));
// String softwareVersion = rset.getString("softwareversion");
String userid = rset.getString("userid");
if (userid.toLowerCase().equals("vcelltestaccount")) // || userid.toLowerCase().equals("anu")
// || userid.toLowerCase().equals("fgao")
// || userid.toLowerCase().equals("liye")
// || userid.toLowerCase().equals("schaff")
// || userid.toLowerCase().equals("ignovak")
// || userid.toLowerCase().equals("jditlev")
// || userid.toLowerCase().equals("sensation")
{
continue;
}
String userkey = rset.getString("userkey");
if (userLoginInfo == null || !userLoginInfo.getUserName().equals(userid)) {
userLoginInfo = new UserLoginInfo(userid, DigestedPassword.createAlreadyDigested(rset.getString("digestpw")));
userLoginInfo.setUser(new User(userid, new KeyValue(userkey)));
}
VCSimulationIdentifier vcSimulationIdentifier = new VCSimulationIdentifier(simJobSimRef, userLoginInfo.getUser());
keyUserLoginInfoHash.put(vcSimulationIdentifier.getSimulationKey(), userLoginInfo);
}
return keyUserLoginInfoHash;
} finally {
if (con != null) {
try {
con.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
use of cbit.vcell.solver.VCSimulationIdentifier in project vcell by virtualcell.
the class TestMissingSimData method runSimsNew.
private static void runSimsNew(String connectURL, String dbSchemaUser, String dbPassword) throws Exception {
Hashtable<KeyValue, UserLoginInfo> keyUserLoginInfo = doQuery(connectURL, dbSchemaUser, dbPassword);
Enumeration<KeyValue> keys = keyUserLoginInfo.keys();
int currentCount = 0;
while (keys.hasMoreElements()) {
KeyValue simKey = keys.nextElement();
UserLoginInfo userLoginInfo = keyUserLoginInfo.get(simKey);
VCSimulationIdentifier vcSimulationIdentifier = new VCSimulationIdentifier(simKey, userLoginInfo.getUser());
while (acquireThread(vcSimulationIdentifier, userLoginInfo, connectURL, dbSchemaUser, dbPassword) == false) {
Thread.sleep(2000);
}
System.out.println("-----");
System.out.println("-----running " + currentCount + " of " + keyUserLoginInfo.size() + " user=" + userLoginInfo.getUser() + " simjobsimref=" + vcSimulationIdentifier.getSimulationKey());
currentCount += 1;
System.out.println("-----");
}
}
use of cbit.vcell.solver.VCSimulationIdentifier in project vcell by virtualcell.
the class TestMissingSimData method checkDataExists.
// private static void runSimsNew(String connectURL,String dbSchemaUser, String dbPassword) throws Exception{
//
// // VCellBootstrap vCellBootstrap = getVCellBootstrap("rmi-beta.cam.uchc.edu", 40105, "VCellBootstrapServer", 12, false);
// // VCellBootstrap vCellBootstrap = getVCellBootstrap("rmi-alpha.cam.uchc.edu", 40106, "VCellBootstrapServer", 12, false);
// VCellBootstrap vCellBootstrap = getVCellBootstrap("rmi-alpha.cam.uchc.edu", 40111, "VCellBootstrapServer", 12, false);//Test2
//
// if(true){
// Hashtable<KeyValue, UserLoginInfo> keyUserLoginInfo = doQuery(connectURL, dbSchemaUser, dbPassword);
// Enumeration<KeyValue> keys = keyUserLoginInfo.keys();
// while(keys.hasMoreElements()){
// KeyValue simKey = keys.nextElement();
// UserLoginInfo userLoginInfo = keyUserLoginInfo.get(simKey);
// VCSimulationIdentifier vcSimulationIdentifier = new VCSimulationIdentifier(simKey, userLoginInfo.getUser());
// acquireThread(vcSimulationIdentifier, vCellBootstrap, userLoginInfo, connectURL, dbSchemaUser, dbPassword);
// }
// return;
// }
//
//
// String itemSelectSQL = " select vc_userinfo.userid,vc_userinfo.id userkey,vc_userinfo.digestpw,missingdata.simjobsimref,vc_softwareversion.softwareversion ";
//
// String sqlPart =
// " from missingdata,vc_simulation,vc_userinfo,vc_softwareversion "+
// " where "+
// " (vc_simulation.id in (select simref from vc_biomodelsim)) and " +
// // " (vc_simulation.id in (select simref from vc_mathmodelsim)) and " +
// " vc_userinfo.userid='fgao5' and "+
// " vc_userinfo.id = vc_simulation.ownerref and "+
// " missingdata.simjobsimref = vc_simulation.id and "+
// // " missingdata.dataexists not like 'readable%' and "+
// " (missingdata.dataexists = 'false') "+
// " and missingdata.notes is not null and " +
// " (missingdata.notes like '%Compiled_solvers_no_longer%' or missingdata.notes like '%Connection_refused%')" +
// // " and missingdata.simjobsimref = 34080002 " +
// // " or missingdata.dataexists like 'error - %') "+
// // " and (missingdata.notes is null ) "+
// // " or missingdata.notes not like 'reran OK%')" +
// " and vc_simulation.parentsimref is null and "+
// " (softwareversion is null or regexp_substr(softwareversion,'^((release)|(rel)|(alpha)|(beta))_version_([[:digit:]]+\\.?)+_build_([[:digit:]]+\\.?)+',1,1,'i') is not null) and "+
// " vc_softwareversion.versionableref (+) = vc_simulation.id " +
// // " and rownum = 1 ";
// // " and vc_simulation.id=39116536"
// " order by vc_userinfo.userid";
//
// // (mdt.dataexists = 'false' or mdt.dataexists like 'error - %') and
// // (mdt.notes is null or mdt.notes not like 'reran OK%') and
//
// //Create hash of sims and userlogininfo
// Hashtable<KeyValue, UserLoginInfo> simToUserLoginInfoHash = new Hashtable<>();
// Statement updateStatement = con.createStatement();
// Statement queryStatement = con.createStatement();
// //Get Count
// ResultSet rset = queryStatement.executeQuery("select count(*) "+sqlPart);
// rset.next();
// int totalCount = rset.getInt(1);
// rset.close();
// //Get sims
// rset = queryStatement.executeQuery(itemSelectSQL+sqlPart);
// UserLoginInfo userLoginInfo = null;
// VCellConnection vcellConnection = null;
// int currentCount = 1;
// while(rset.next()){
// KeyValue simJobSimRef = new KeyValue(rset.getString("simjobsimref"));
// try{
// String softwareVersion = rset.getString("softwareversion");
// String userid = rset.getString("userid");
// System.out.println("-----");
// System.out.println("-----running "+currentCount+" of "+totalCount+" user="+userid+" simjobsimref="+simJobSimRef);
// currentCount+= 1;
// System.out.println("-----");
//
// if(!rset.wasNull() && softwareVersion != null){
// StringTokenizer st = new StringTokenizer(softwareVersion, "_");
// st.nextToken();//site name
// st.nextToken();//'Version' literal string
// String majorVersion = st.nextToken();//major version number
// if(majorVersion.equals("5.4")){
// throw new Exception("Alpha-5.4 sims are not being re-run using Beta-5.3 code");
// }
// }
//
// if(userid.toLowerCase().equals("vcelltestaccount")
// // || userid.toLowerCase().equals("anu")
// // || userid.toLowerCase().equals("fgao")
// // || userid.toLowerCase().equals("liye")
// // || userid.toLowerCase().equals("schaff")
// // || userid.toLowerCase().equals("ignovak")
// // || userid.toLowerCase().equals("jditlev")
// // || userid.toLowerCase().equals("sensation")
// ){
// continue;
// }
// String userkey = rset.getString("userkey");
// if(userLoginInfo == null || !userLoginInfo.getUserName().equals(userid)){
// userLoginInfo = new UserLoginInfo(userid,DigestedPassword.createAlreadyDigested(rset.getString("digestpw")));
// userLoginInfo.setUser(new User(userid, new KeyValue(userkey)));
// vcellConnection = null;
// }
// VCSimulationIdentifier vcSimulationIdentifier = new VCSimulationIdentifier(simJobSimRef, userLoginInfo.getUser());
//
//
// //
// //
// //
// if(true){
// acquireThread(vcSimulationIdentifier, vCellBootstrap, userLoginInfo, connectURL, dbSchemaUser, dbPassword);
// continue;
// }
//
// try{
// if(vcellConnection != null){
// vcellConnection.getMessageEvents();
// }
// }catch(Exception e){
// e.printStackTrace();
// //assume disconnected
// vcellConnection = null;
// }
// if(vcellConnection == null){
// vcellConnection = vCellBootstrap.getVCellConnection(userLoginInfo);
// vcellConnection.getMessageEvents();
// }
//
// SimulationStatusPersistent initSimulationStatus = vcellConnection.getUserMetaDbServer().getSimulationStatus(vcSimulationIdentifier.getSimulationKey());
//
// System.out.println("initial status="+initSimulationStatus);
// // if(!initSimulationStatus.isCompleted() || !initSimulationStatus.getHasData()){
// // continue;
// // }
//
//
// BigString simXML = vcellConnection.getUserMetaDbServer().getSimulationXML(simJobSimRef);
// Simulation sim = XmlHelper.XMLToSim(simXML.toString());
// // SolverDescription solverDescription = sim.getSolverTaskDescription().getSolverDescription();
// // if(solverDescription.equals(SolverDescription.StochGibson) || solverDescription.equals(SolverDescription.FiniteVolume)){
// // //These 2 solvers give too much trouble so skip
// // System.out.println("--skipping solver");
// //// notCompletedSimIDs.add(simIDAndJobID.simID.toString());
// // return;
// // }
//
//
// // if(!sim.isSpatial()){
// // continue;
// // }
// // if(sim.getSolverTaskDescription().isSerialParameterScan()/* || sim.getSolverTaskDescription().getExpectedNumTimePoints() > 20*/){
// // continue;
// // }
//
// int scanCount = sim.getScanCount();
// // if(true){return;}
// SimulationStatusPersistent simulationStatus = null;
// SimulationInfo simulationInfo = sim.getSimulationInfo();
// if(!simulationInfo.getAuthoritativeVCSimulationIdentifier().getSimulationKey().equals(vcSimulationIdentifier.getSimulationKey())){
// throw new Exception("Unexpected authoritative and sim id are not the same");
// }
// vcellConnection.getSimulationController().startSimulation(vcSimulationIdentifier, scanCount);
// long startTime = System.currentTimeMillis();
// while(simulationStatus == null || simulationStatus.isStopped() || simulationStatus.isCompleted() || simulationStatus.isFailed()){
// Thread.sleep(2000);
// simulationStatus = vcellConnection.getUserMetaDbServer().getSimulationStatus(vcSimulationIdentifier.getSimulationKey());
// if(simulationStatus.isFailed() && !initSimulationStatus.isFailed()){
// break;
// }
// MessageEvent[] messageEvents = vcellConnection.getMessageEvents();
// if((System.currentTimeMillis()-startTime) > 30000){
// throw new Exception("-----Sim finished too fast or took too long to start, status= "+simulationStatus);
// }
// System.out.println(simulationStatus);
// }
// SimulationStatusPersistent lastSimStatus = simulationStatus;
// while(!simulationStatus.isStopped() && !simulationStatus.isCompleted() && !simulationStatus.isFailed()){
// for(int i = 0;i<3;i++){
// MessageEvent[] messageEvents = vcellConnection.getMessageEvents();
// Thread.sleep(1000);
// }
// simulationStatus = vcellConnection.getUserMetaDbServer().getSimulationStatus(vcSimulationIdentifier.getSimulationKey());
// if(!simulationStatus.toString().equals(lastSimStatus.toString())){
// lastSimStatus = simulationStatus;
// System.out.println("running status="+simulationStatus);
// }
// // MessageEvent[] messageEvents = vcellConnection.getMessageEvents();
// // for (int i = 0; messageEvents != null && i < messageEvents.length; i++) {
// // System.out.println(messageEvents[i]);
// // }
// }
//
// if(!lastSimStatus.isCompleted()){
// throw new Exception("Unexpected run status: "+lastSimStatus.toString());
// }
//
//
// String updatestr = "update missingdata set notes='"+DB_NOTES_SIM_RUNOK_CODE+"' where simjobsimref="+simJobSimRef;
// System.out.println(updatestr);
// updateStatement.executeUpdate(updatestr);
// con.commit();
// }catch(Exception e){
// e.printStackTrace();
// String errString = TokenMangler.fixTokenStrict(DB_NOTES_SIM_ERROR_CODE+e.getClass().getSimpleName()+" "+e.getMessage());
// if(errString.length() > 256){
// errString = errString.substring(0, 256);
// }
// String updatestr = "update missingdata set notes='"+errString+"' where simjobsimref="+simJobSimRef;
// System.out.println(updatestr);
// updateStatement.executeUpdate(updatestr);
// con.commit();
// }
// }
//
// }
private static void checkDataExists(Connection con, boolean bExistOnly) throws SQLException {
AmplistorCredential amplistorCredential = AmplistorUtilsTest.getAmplistorCredential();
Statement queryStatement = con.createStatement();
Statement updateStatement = con.createStatement();
// Hashtable<KeyValue, Exception> errorHash = new Hashtable<>();
String sql = "select missingdata.*,parentsimref " + " from missingdata,vc_simulation,vc_userinfo" + " where vc_simulation.id = missingdata.simjobsimref and" + " vc_simulation.parentsimref is null and " + " vc_simulation.ownerref=vc_userinfo.id and " + " missingdata.notes is not null and " + " (missingdata.notes like '%exceeded_maximum%' " + " or missingdata.notes ='recheck dataexists' )" + // " vc_userinfo.userid='schaff' "+
" order by missingdata.userid";
ResultSet rset = queryStatement.executeQuery(sql);
while (rset.next()) {
// if(!rset.getString("dataexists").equals("tbd")){
// continue;
// }
KeyValue simJobSimRef = null;
KeyValue parentsimref = null;
User user = null;
try {
simJobSimRef = new KeyValue(rset.getString("simjobsimref"));
parentsimref = (rset.getString("parentsimref") == null ? null : new KeyValue(rset.getString("parentsimref")));
user = new User(rset.getString("userid"), new KeyValue(rset.getString("userinfoid")));
int jobIndex = rset.getInt("jobindex");
File primaryDataDir = new File("\\\\cfs02\\ifs\\raid\\vcell\\users\\" + user.getName());
String updatestr = null;
File filePathNamePrime = new File(primaryDataDir, SimulationData.createCanonicalSimLogFileName(simJobSimRef, 0, false));
if (filePathNamePrime.exists()) {
updatestr = "fileNewPrime";
} else if (new File(primaryDataDir, SimulationData.createCanonicalSimLogFileName(simJobSimRef, 0, true)).exists()) {
updatestr = "fileOldPrime";
} else if (parentsimref != null && new File(primaryDataDir, SimulationData.createCanonicalSimLogFileName(parentsimref, 0, false)).exists()) {
updatestr = "fileNewParent";
} else if (parentsimref != null && new File(primaryDataDir, SimulationData.createCanonicalSimLogFileName(parentsimref, 0, true)).exists()) {
updatestr = "fileOldParent";
} else if (AmplistorUtils.bFileExists(new URL(AmplistorUtils.DEFAULT_AMPLI_SERVICE_VCELL_URL + user.getName() + "/" + filePathNamePrime.getName()), amplistorCredential)) {
updatestr = "ampliNewPrime";
} else if (AmplistorUtils.bFileExists(new URL(AmplistorUtils.DEFAULT_AMPLI_SERVICE_VCELL_URL + user.getName() + "/" + SimulationData.createCanonicalSimLogFileName(simJobSimRef, 0, true)), amplistorCredential)) {
updatestr = "ampliOldPrime";
} else if (parentsimref != null && AmplistorUtils.bFileExists(new URL(AmplistorUtils.DEFAULT_AMPLI_SERVICE_VCELL_URL + user.getName() + "/" + SimulationData.createCanonicalSimLogFileName(parentsimref, 0, false)), amplistorCredential)) {
updatestr = "ampliNewParent";
} else if (parentsimref != null && AmplistorUtils.bFileExists(new URL(AmplistorUtils.DEFAULT_AMPLI_SERVICE_VCELL_URL + user.getName() + "/" + SimulationData.createCanonicalSimLogFileName(parentsimref, 0, true)), amplistorCredential)) {
updatestr = "ampliOldParent";
} else {
updatestr = "false";
}
if (bExistOnly || updatestr.equals("false")) {
updateStatement.executeUpdate("update missingdata set dataexists='" + updatestr + "' where simjobsimref=" + simJobSimRef.toString());
con.commit();
continue;
}
// Log file exists, now check if the data can really be read
VCSimulationIdentifier vcSimulationIdentifier = new VCSimulationIdentifier(simJobSimRef, user);
VCSimulationDataIdentifier vcSimulationDataIdentifier = new VCSimulationDataIdentifier(vcSimulationIdentifier, jobIndex);
// Try to read log,times and simdata to see if this data is well formed
SimDataAmplistorInfo simDataAmplistorInfo = AmplistorUtils.getSimDataAmplistorInfoFromPropertyLoader();
SimulationData simData = new SimulationData(vcSimulationDataIdentifier, primaryDataDir, null, simDataAmplistorInfo);
double[] dataTimes = simData.getDataTimes();
DataIdentifier[] dataIdentifiers = simData.getVarAndFunctionDataIdentifiers(null);
DataIdentifier readDataIdentifier = null;
for (DataIdentifier dataIdentifier : dataIdentifiers) {
if (!dataIdentifier.isFunction()) {
if (simData.getIsODEData()) {
ODEDataBlock odeDataBlock = simData.getODEDataBlock();
odeDataBlock.getODESimData().getRow(dataTimes.length - 1);
} else {
simData.getSimDataBlock(null, dataIdentifier.getName(), dataTimes[dataTimes.length - 1]);
}
readDataIdentifier = dataIdentifier;
break;
}
}
System.out.println(BeanUtils.forceStringSize("user= " + user.getName(), 20, " ", false) + " simref= " + BeanUtils.forceStringSize(simJobSimRef.toString(), 14, " ", false) + " numTimes= " + BeanUtils.forceStringSize(dataTimes.length + "", 8, " ", true) + " readDataID= " + BeanUtils.forceStringSize(readDataIdentifier.getName() + "", 20, " ", true));
updatestr = "update missingdata set dataexists='readable' where simjobsimref=" + simJobSimRef.toString();
// String updatestr = "update missingdata set dataexists='true' where"+
// " userinfoid="+user.getID().toString()+
// " and simjobsimref="+simJobSimRef.toString()+
// " and maxtaskid="+rset.getString("maxtaskid")+
// " and jobindex="+jobIndex;
// updateStatement.executeUpdate(updatestr);
// con.commit();
} catch (Exception e) {
if (simJobSimRef == null) {
e.printStackTrace();
// throw new SQLException("Error querying",e);
} else {
String errString = e.getClass().getSimpleName() + " " + e.getMessage();
if (errString.length() > 512) {
errString = errString.substring(0, 512);
}
String updatestr = "update missingdata set dataexists='error - " + TokenMangler.fixTokenStrict(errString) + "' where simjobsimref=" + simJobSimRef.toString();
// updateStatement.executeUpdate(updatestr);
// con.commit();
System.out.println(BeanUtils.forceStringSize("user= " + (user == null ? "unavailable" : user.getName()), 20, " ", false) + " simref= " + BeanUtils.forceStringSize(simJobSimRef.toString(), 14, " ", false) + " parentsimref= " + BeanUtils.forceStringSize((parentsimref == null ? "NULL" : parentsimref.toString()), 14, " ", false) + " failed= " + e.getMessage());
// errorHash.put(simJobSimRef,e);
}
}
}
rset.close();
// return errorHash;
}
use of cbit.vcell.solver.VCSimulationIdentifier in project vcell by virtualcell.
the class RestDatabaseService method getDataSetMetadata.
public DataSetMetadata getDataSetMetadata(SimDataServerResource resource, User vcellUser) throws ObjectNotFoundException, DataAccessException, SQLException {
if (vcellUser == null) {
vcellUser = VCellApiApplication.DUMMY_USER;
}
UserLoginInfo userLoginInfo = new UserLoginInfo(vcellUser.getName(), null);
// resource.getRequestAttributes().get(VCellApiApplication.SIMDATAID);
String simId = resource.getAttribute(VCellApiApplication.SIMDATAID);
KeyValue simKey = new KeyValue(simId);
SimulationRep simRep = getSimulationRep(simKey);
if (simRep == null) {
throw new ObjectNotFoundException("Simulation with key " + simKey + " not found");
}
User owner = simRep.getOwner();
int jobIndex = 0;
VCMessageSession rpcSession = vcMessagingService.createProducerSession();
try {
RpcDataServerProxy rpcDataServerProxy = new RpcDataServerProxy(userLoginInfo, rpcSession);
VCSimulationIdentifier vcSimID = new VCSimulationIdentifier(simKey, owner);
VCDataIdentifier vcdID = new VCSimulationDataIdentifier(vcSimID, jobIndex);
DataSetMetadata dataSetMetadata = rpcDataServerProxy.getDataSetMetadata(vcdID);
return dataSetMetadata;
} finally {
rpcSession.close();
}
}
use of cbit.vcell.solver.VCSimulationIdentifier in project vcell by virtualcell.
the class ClientTopicMessageCollector method onTopicMessage.
/**
* Insert the method's description here.
* Creation date: (10/23/2001 3:58:52 PM)
* @param message javax.jms.Message
* @throws VCMessagingException
*/
public void onTopicMessage(VCMessage message, VCMessageSession session) {
if (message == null) {
return;
}
try {
if (message.getObjectContent() == null) {
throw new Exception(this.getClass().getName() + ".onTopicMessage: unimplemented message class " + message.show());
}
setTimeSinceLastMessage(System.currentTimeMillis());
String msgType = message.getStringProperty(VCMessagingConstants.MESSAGE_TYPE_PROPERTY);
if (msgType == null) {
throw new Exception(this.getClass().getName() + ".onTopicMessage: message type NULL for message " + message);
}
if (msgType.equals(MessageConstants.MESSAGE_TYPE_SIMSTATUS_VALUE)) {
String messageUserName = message.getStringProperty(VCMessagingConstants.USERNAME_PROPERTY);
StatusMessage statusMessage = new StatusMessage(message);
String userName = VCMessagingConstants.USERNAME_PROPERTY_VALUE_ALL;
if (message.propertyExists(VCMessagingConstants.USERNAME_PROPERTY)) {
userName = message.getStringProperty(VCMessagingConstants.USERNAME_PROPERTY);
}
SimulationJobStatus newJobStatus = statusMessage.getJobStatus();
if (newJobStatus == null) {
return;
}
VCSimulationIdentifier vcSimID = newJobStatus.getVCSimulationIdentifier();
Double progress = statusMessage.getProgress();
Double timePoint = statusMessage.getTimePoint();
fireSimulationJobStatusEvent(new SimulationJobStatusEvent(this, vcSimID.getID(), newJobStatus, progress, timePoint, messageUserName));
} else if (msgType.equals(MessageConstants.MESSAGE_TYPE_EXPORT_EVENT_VALUE)) {
String messageUserName = message.getStringProperty(VCMessagingConstants.USERNAME_PROPERTY);
ExportEvent event = (ExportEvent) message.getObjectContent();
fireExportEvent(event);
} else if (msgType.equals(MessageConstants.MESSAGE_TYPE_DATA_EVENT_VALUE)) {
String messageUserName = message.getStringProperty(VCMessagingConstants.USERNAME_PROPERTY);
DataJobEvent event = (DataJobEvent) message.getObjectContent();
fireMessageEvent(event);
} else if (msgType.equals(MessageConstants.MESSAGE_TYPE_BROADCASTMESSAGE_VALUE)) {
String messageUserName = message.getStringProperty(VCMessagingConstants.USERNAME_PROPERTY);
fireMessageEvent(new VCellMessageEvent(this, System.currentTimeMillis() + "", new MessageData((BigString) message.getObjectContent()), VCellMessageEvent.VCELL_MESSAGEEVENT_TYPE_BROADCAST, messageUserName));
} else {
throw new Exception(this.getClass().getName() + ".onControlTopicMessage: Unimplemented message " + message.show());
}
} catch (Exception e) {
e.printStackTrace();
lg.error(e.getMessage(), e);
}
}
Aggregations