📄 jco$server.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: JCO.java
package com.sap.mw.jco;
import com.sap.jdsr.writer.DsrFactory;
import com.sap.jdsr.writer.DsrIPassport;
import com.sap.mw.jco.util.Codecs;
import com.sap.mw.jco.util.Dsr;
import com.sap.mw.jco.util.Jarm;
import java.io.*;
import java.util.*;
// Referenced classes of package com.sap.mw.jco:
// IMiddleware, JCO, IRepository, IServerThread
public static class JCO$Server extends ion
implements Runnable
{
protected static synchronized .IServer getServerInterface()
{
try
{
IMiddleware mw = (IMiddleware)JCO.middleware_class.newInstance();
return mw.getServerInterface();
}
catch(Exception ex)
{
JCO.fireTrace(0, "[JAV-LAYER] JCO.Server(): could not get middleware interface");
}
return null;
}
protected void setThread(IServerThread thread)
{
if(!(thread instanceof Thread))
{
throw new IllegalArgumentException("thread argument must be subclass of Thread");
} else
{
m_thread = thread;
return;
}
}
protected IRepository getRepository()
{
return m_repository;
}
protected void setRepository(IRepository repository)
{
m_repository = repository;
}
protected .IServer getMiddlewareImplementation()
{
return m_middleware;
}
public final String[][] getPropertyInfo()
{
return m_middleware.getPropertyInfo();
}
protected void setProperty(String key, String value)
{
if(key != null && key.equals("jco.server.max_startup_delay"))
if(value != null)
try
{
m_max_startup_delay = Integer.parseInt(value);
if(m_max_startup_delay < 0)
m_max_startup_delay = -255;
}
catch(Exception ex)
{
throw new on(122, "JCO_ERROR_CONVERSION", "Value of property jco.server.max_startup_delay not an integer.");
}
else
m_max_startup_delay = -255;
super.setProperty(key, value);
}
public void setCallModel(int call_model)
{
if(JCO.trace_level > 0)
JCO.fireTrace(1, "JCO.Server.setCallModell(" + call_model + ")");
m_call_model = call_model;
if(!JCO.middleware_layer.equals("com.sap.mw.jco.rfc.MiddlewareRFC"))
m_dispatch_mode &= -2;
else
m_dispatch_mode |= 1;
}
public int getCallModel()
{
return m_call_model;
}
protected void setState(byte state)
{
if(super.state == state)
{
return;
} else
{
int old_state = super.state;
int new_state = state;
super.setState(state);
JCO.fireServerStateChangeOccurred(this, old_state, new_state);
return;
}
}
public byte getState()
{
return super.getState();
}
public Thread getThread()
{
return (Thread)m_thread;
}
public final tes getAttributes()
{
if(super.attributes == null)
{
super.state |= 4;
if(getConnectionHandle() != 0L)
m_middleware.getAttributes(this);
super.state &= 0xfb;
}
super.last_active_timestamp = System.currentTimeMillis();
return super.attributes;
}
public final String getGWHost()
{
return super.properties.getProperty("jco.server.gwhost");
}
public final String getGWServ()
{
return super.properties.getProperty("jco.server.gwserv");
}
public final String getProgID()
{
return super.properties.getProperty("jco.server.progid");
}
public final boolean getTrace()
{
String value = super.properties.getProperty("jco.server.trace");
return value != null && value.equals("1");
}
public final void setTrace(boolean trace)
{
setProperty("jco.server.trace", trace ? "1" : "0");
}
private final int getMaxStartupDelay()
{
if(m_max_startup_delay == -255)
return JCO.middleware.getMaxStartupDelay();
if(m_max_startup_delay < 0)
{
String value = super.properties.getProperty("jco.server.max_startup_delay");
if(value != null)
try
{
m_max_startup_delay = Integer.parseInt(value);
}
catch(Exception ex)
{
throw new on(122, "JCO_ERROR_CONVERSION", "Value of property jco.server.max_startup_delay not an integer.");
}
if(m_max_startup_delay < 0)
{
m_max_startup_delay = -255;
return JCO.middleware.getMaxStartupDelay();
}
}
return m_max_startup_delay;
}
/**
* @deprecated Method getDsrPassport is deprecated
*/
public DsrIPassport getDsrPassport()
{
if(JCO.trace_level > 4)
JCO.fireTrace(5, "[JAV-LAYER] getDsrPassport for connection with handle " + getConnectionHandle() + " [enter]");
try
{
if(super.passport_bytes != null)
{
DsrIPassport passport = DsrFactory.makeDsrPassport();
if(!passport.setByNetPassport(super.passport_bytes))
throw new on(152, "JCO_ERROR_DSR_PASSPORT_NOT_VALID", "jDSR library cannot parse received passport.");
if(super.dsr_monitor != null)
passport.setPrevCompName("com.sap.mw.jco.JCO.Server");
DsrIPassport dsripassport = passport;
return dsripassport;
}
on e = new on(151, "JCO_ERROR_DSR_PASSPORT_NOT_RECEIVED", "Dsr Passport wasn't sent from partner side.");
if(JCO.trace_level > 2)
JCO.fireTrace(3, "[JAV-LAYER] " + e.toString());
throw e;
}
finally
{
if(JCO.trace_level > 4)
JCO.fireTrace(5, "[JAV-LAYER] getDsrPassport for connection with handle " + getConnectionHandle() + " [leave]");
}
}
public void disconnect()
{
try
{
if(JCO.trace_level > 0)
JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.disconnect() on [" + getConnectionHandle() + "] [enter]");
setState((byte)(super.state & 0xf0 | 1));
if(!isValid())
return;
m_middleware.disconnect(this);
}
finally
{
if(JCO.trace_level > 0)
JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.disconnect() on [" + getConnectionHandle() + "] [leave]");
}
}
public void abort(String message)
{
try
{
if(JCO.trace_level > 0)
JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.abort(\"" + message + "\") on [" + getConnectionHandle() + "] [enter]");
if(!isValid())
return;
m_middleware.abort(this, message);
}
finally
{
setState((byte)(super.state & 0xf0 | 1));
if(JCO.trace_level > 0)
JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.abort(\"" + message + "\") on [" + getConnectionHandle() + "] [leave]");
}
}
public void start()
{
try
{
if(JCO.trace_level > 0)
JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.start() on [" + getConnectionHandle() + "] [enter]");
checkProperties();
Thread thread = getThread();
if(thread == null)
throw new on(129, "JCO_ERROR_SERVER_STARTUP", "A server that has been stopped cannot be restarted");
try
{
synchronized(m_semaphore)
{
m_startup_delay = 0;
if(!thread.isAlive())
thread.start();
else
if((super.state & 0x40) != 0)
{
super.state = (byte)(super.state & 0xffffffbf);
m_semaphore.notifyAll();
}
}
}
catch(Exception ex)
{
JCO.fireServerExceptionOccurred(this, ex);
}
}
finally
{
if(JCO.trace_level > 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -