use of org.compiere.interfaces.Server in project adempiere by adempiere.
the class ProcessCtl method startDBProcess.
// startProcess
/**************************************************************************
* Start Database Process
* @param ProcedureName PL/SQL procedure name
* @return true if success
*/
private boolean startDBProcess(String ProcedureName) {
// execute on this thread/connection
log.fine(ProcedureName + "(" + processInstance.getAD_PInstance_ID() + ")");
boolean started = false;
if (isServerProcess) {
Server server = CConnection.get().getServer();
try {
if (server != null) {
// See ServerBean
processInstance = server.dbProcess(processInstance, ProcedureName);
log.finest("server => " + processInstance);
started = true;
}
} catch (UndeclaredThrowableException ex) {
Throwable cause = ex.getCause();
if (cause != null) {
if (cause instanceof InvalidClassException)
log.log(Level.SEVERE, "Version Server <> Client: " + cause.toString() + " - " + processInstance, ex);
else
log.log(Level.SEVERE, "AppsServer error(1b): " + cause.toString() + " - " + processInstance, ex);
} else {
log.log(Level.SEVERE, " AppsServer error(1) - " + processInstance, ex);
cause = ex;
}
processInstance.setSummary(Msg.getMsg(Env.getCtx(), "ProcessRunError") + " " + cause.getLocalizedMessage());
processInstance.setError(true);
return false;
} catch (Exception ex) {
Throwable cause = ex.getCause();
if (cause == null)
cause = ex;
log.log(Level.SEVERE, "AppsServer error - " + processInstance, cause);
processInstance.setSummary(Msg.getMsg(Env.getCtx(), "ProcessRunError") + " " + cause.getLocalizedMessage());
processInstance.setError(true);
return false;
}
}
//try locally
if (!started) {
if (processInstance.isManagedTransaction())
return ProcessUtil.startDatabaseProcedure(processInstance, ProcedureName, m_trx);
else
return ProcessUtil.startDatabaseProcedure(processInstance, ProcedureName, m_trx, processInstance.isManagedTransaction());
}
// log.fine(Log.l4_Data, "ProcessCtl.startProcess - done");
return true;
}
use of org.compiere.interfaces.Server in project adempiere by adempiere.
the class DocumentEngine method postImmediate.
/**
* Post Immediate
*
* @param ctx Client Context
* @param AD_Client_ID Client ID of Document
* @param AD_Table_ID Table ID of Document
* @param Record_ID Record ID of this document
* @param force force posting
* @param trxName ignore, retained for backward compatibility
* @return null, if success or error message
*/
public static String postImmediate(Properties ctx, int AD_Client_ID, int AD_Table_ID, int Record_ID, boolean force, String trxName) {
// Ensure the table has Posted column / i.e. GL_JournalBatch can be completed but not posted
if (MColumn.getColumn_ID(MTable.getTableName(ctx, AD_Table_ID), "Posted") <= 0)
return null;
String error = null;
if (MClient.isClientAccounting()) {
log.info("Table=" + AD_Table_ID + ", Record=" + Record_ID);
MAcctSchema[] ass = MAcctSchema.getClientAcctSchema(ctx, AD_Client_ID);
error = Doc.postImmediate(ass, AD_Table_ID, Record_ID, force, trxName);
return error;
}
// try to get from Server when enabled
if (CConnection.get().isAppsServerOK(true)) {
log.config("trying server");
try {
Server server = CConnection.get().getServer();
if (server != null) {
Properties p = Env.getRemoteCallCtx(Env.getCtx());
error = server.postImmediate(p, AD_Client_ID, AD_Table_ID, Record_ID, force, // don't pass transaction to server
null);
log.config("from Server: " + error == null ? "OK" : error);
} else {
error = "NoAppsServer";
}
} catch (Exception e) {
log.log(Level.WARNING, "(RE)", e);
error = e.getMessage();
}
}
return error;
}
use of org.compiere.interfaces.Server in project adempiere by adempiere.
the class ReplicationLocal method connectRemote.
// doIt
/**
* Connect to Remote Server
* @throws java.lang.Exception
*/
private void connectRemote() throws Exception {
// Replication Info
m_replication = new MReplication(getCtx(), getRecord_ID(), get_TrxName());
//
String AppsHost = m_replication.getHostAddress();
int AppsPort = m_replication.getHostPort();
CConnection connection = new CConnection(AppsHost);
connection.setAppsPort(AppsPort);
log.info(AppsHost + ":" + AppsPort);
try {
Server server = connection.getServer();
// log.fine("- ServerHome: " + serverHome);
if (server == null)
throw new Exception("NoServer");
m_serverRemote = server;
// log.fine("- Server: " + m_serverRemote);
// log.fine("- Remote Status = " + m_serverRemote.getStatus());
} catch (Exception ex) {
log.log(Level.SEVERE, "connectRemote", ex);
throw new Exception(ex);
}
}
use of org.compiere.interfaces.Server in project adempiere by adempiere.
the class StatusInfo method doGet.
/**
* Get
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Status Info</title></head>");
out.println("<body>");
InitialContext context = null;
try {
context = new InitialContext();
} catch (Exception ex) {
out.println("<p><b>" + ex + "</b></p>");
}
try {
Status status = (Status) context.lookup(Status.JNDI_NAME);
out.println("<p>" + status.getStatus() + "</p>");
} catch (Exception ex) {
out.println("<p><b>" + ex + "</b></p>");
}
try {
Server server = (Server) context.lookup(Server.JNDI_NAME);
out.println("<p>" + server.getStatus() + "</p>");
} catch (Exception ex) {
out.println("<p><b>" + ex + "</b></p>");
}
try {
out.println("<h2>-- /</h2>");
NamingEnumeration ne = context.list("/");
while (ne.hasMore()) out.println("<br> " + ne.nextElement());
out.println("<h2>-- java</h2>");
ne = context.list("java:");
while (ne.hasMore()) out.println("<br> " + ne.nextElement());
out.println("<h2>-- ejb</h2>");
ne = context.list("ejb");
while (ne.hasMore()) out.println("<br> " + ne.nextElement());
//
out.println("<h2>-- DS</h2>");
DataSource ds = (DataSource) context.lookup("java:/OracleDS");
out.println("<br> DataSource " + ds.getClass().getName() + " LoginTimeout=" + ds.getLoginTimeout());
Connection con = ds.getConnection("adempiere", "adempiere");
out.println("<br> Connection ");
getServletContext().log("Connection closed=" + con.isClosed());
DatabaseMetaData dbmd = con.getMetaData();
getServletContext().log("DB " + dbmd.getDatabaseProductName());
getServletContext().log("DB V " + dbmd.getDatabaseProductVersion());
getServletContext().log("Driver " + dbmd.getDriverName());
getServletContext().log("Driver V " + dbmd.getDriverVersion());
getServletContext().log("JDBC " + dbmd.getJDBCMajorVersion());
getServletContext().log("JDBC mV " + dbmd.getJDBCMinorVersion());
getServletContext().log("User " + dbmd.getUserName());
getServletContext().log("ANSI 92 " + dbmd.supportsANSI92FullSQL());
getServletContext().log("Connection Alter Table ADD" + dbmd.supportsAlterTableWithAddColumn());
getServletContext().log("Connection Alter Table DROP " + dbmd.supportsAlterTableWithDropColumn());
getServletContext().log("Connection DDL&DML " + dbmd.supportsDataDefinitionAndDataManipulationTransactions());
getServletContext().log("Connection CatalogsIn DML " + dbmd.supportsCatalogsInDataManipulation());
getServletContext().log("Connection Schema In DML " + dbmd.supportsSchemasInDataManipulation());
con.close();
} catch (Exception e) {
out.println("<p><b>" + e + "</b></p>");
}
out.println("</body></html>");
}
use of org.compiere.interfaces.Server in project adempiere by adempiere.
the class ServerProcessCtl method startProcess.
// startWorkflow
/**************************************************************************
* Start Java Process Class.
* instanciate the class implementing the interface ProcessCall.
* The class can be a Server/Client class (when in Package
* org adempiere.process or org.compiere.model) or a client only class
* (e.g. in org.compiere.report)
*
* @return true if success
*/
protected boolean startProcess() {
log.fine(processInfo.toString());
boolean started = false;
//hengsin, bug [ 1633995 ]
boolean clientOnly = false;
if (!processInfo.getClassName().toLowerCase().startsWith(MRule.SCRIPT_PREFIX)) {
try {
Class<?> processClass = Class.forName(processInfo.getClassName());
if (ClientProcess.class.isAssignableFrom(processClass))
clientOnly = true;
} catch (Exception e) {
}
}
if (isServerProcess && !clientOnly) {
Server server = CConnection.get().getServer();
try {
if (server != null) {
// See ServerBean
processInfo = server.process(Env.getRemoteCallCtx(Env.getCtx()), processInfo);
log.finest("server => " + processInfo);
started = true;
}
} catch (UndeclaredThrowableException ex) {
Throwable cause = ex.getCause();
if (cause != null) {
if (cause instanceof InvalidClassException)
log.log(Level.SEVERE, "Version Server <> Client: " + cause.toString() + " - " + processInfo, ex);
else
log.log(Level.SEVERE, "AppsServer error(1b): " + cause.toString() + " - " + processInfo, ex);
} else
log.log(Level.SEVERE, " AppsServer error(1) - " + processInfo, ex);
started = false;
} catch (Exception ex) {
Throwable cause = ex.getCause();
if (cause == null)
cause = ex;
log.log(Level.SEVERE, "AppsServer error - " + processInfo, cause);
started = false;
}
}
// Run locally
if (!started && (!isServerProcess || clientOnly)) {
if (processInfo.getClassName().toLowerCase().startsWith(MRule.SCRIPT_PREFIX)) {
return ProcessUtil.startScriptProcess(Env.getCtx(), processInfo, trx);
} else {
if (processInfo.isManagedTransaction())
return ProcessUtil.startJavaProcess(Env.getCtx(), processInfo, trx);
else
return ProcessUtil.startJavaProcess(Env.getCtx(), processInfo, trx, processInfo.isManagedTransaction());
}
}
return !processInfo.isError();
}
Aggregations