LifeCycle of an Corba Object
The activation of the Corba Object on Server side is made
after an client request by the BOA service. After that,
how long is the instance kept in the memory by the
Oracle JServer / Visigenic ORB ? How does it work ?
In the Oracle application server 4.0 there is a pool
mechanism for the Corba Objects and how about Corba
in Oracle 8i ?
null
See page C-2 of the EJB & CORBA Developers Guide (in the 8i Doc
set). Each object is associated with a session in the database.
The life is as follows (this is an abbreviated quote from the
above mentioned doc.):
1) A Client looks up the object impl name with JNDI (this
includes the RDBMS name and the client must authenticate here
too).
2) ORB Responds by creating the object and returning a ref.
3) Client uses object
4) Object ceases to exist when the user session is destroyed.
null
Similar Messages
-
Help!! - Unable to use the Application Module Deployed as Corba Object in Oracle 8i
I have been able to successfully deploy an Application Module in Oracle 8i but i am un able to get a reference to the Application Module from the database the code used by me is -
package client;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Hashtable;
import oracle.jbo.*;
import org.omg.CORBA.*;
public class Corba8IClient{
Hashtable env = new Hashtable();
ApplicationModule appMod = null;
String theAMDefName = "test/jd/freshJBO.FreshJBOModule";
public Corba8IClient() {
System.out.println("Started...");
// Load the Application Module
try{
// Component deployed to Oracle8i CORBA Server.
// Set up the 8i environment
System.out.println("Setting up initial Context...");
env.put(Context.INITIAL_CONTEXT_FACTORY, JboContext.JBO_CONTEXT_FACTORY);
env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_ORACLE8I);
env.put(Context.SECURITY_PRINCIPAL, "jd");
env.put(Context.SECURITY_CREDENTIALS, "jd");
env.put(JboContext.HOST_NAME, "Dev51");
env.put(JboContext.CONNECTION_PORT, "2481");
env.put(JboContext.ORACLE_SID, "ORA8I");
// env.put(JboContext.APPLICATION_PATH, "test/jd/");
System.out.println("Getting initial Context.");
Context ic = new InitialContext(env);
System.out.println("Doing Lookup...");
ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(theAMDefName);
System.out.println("Calling create...");
// home
System.out.println("Home Class Name : "+home.getClass().getName());
oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome am = (oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome)home;
System.out.println("DefName "+am.getDefName());
appMod = home.create();
System.out.println("Setting up connetion from AppMod to database...");
appMod.getTransaction().connect("jdbc:oracle:thin:jd/jd@dev51:1521:ORA8I");
}catch(Exception e) {
e.printStackTrace();
System.out.println("AppMod full Name "+ appMod.getFullName());
public ApplicationModule getAppMod(){
return appMod;
public static void main(String args[]){
Corba8IClient c8c = new Corba8IClient();
after running the output is -
Started...
Setting up initial Context...
Getting initial Context.
Doing Lookup...
Diagnostics: Silencing all diagnostic output (use -Djbo.debugoutput=console to see it)
Calling create...
Home Class Name : oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome
DefName null
oracle.jbo.ApplicationModuleCreateException: JBO-25222: Unable to create application module.
at oracle.jbo.client.remote.corba.CORBAApplicationModuleHomeImpl.create(CORBAApplicationModuleHomeImpl.java:63)
at client.Corba8IClient.<init>(Corba8IClient.java:39)
at client.Corba8IClient.main(Corba8IClient.java:53)
java.lang.NullPointerException
at client.Corba8IClient.<init>(Corba8IClient.java:45)
at client.Corba8IClient.main(Corba8IClient.java:53)
Corba Object is deployed as -
ObjectName = /test/jd/freshJBOModule
Server Class = freshJBO.server.o8.FreshJBOModuleServerO8
Helper Class = oracle.jbo.common.remote.corba.RemoteApplicationModuleHomeHelper
The Application Module conatians an entity object and a view object for Dept Table in schema jd(Username -jd, Password -jd).Moneesh,
I believe there is a problem with the way you set the variable theAMDefName. It should be:
String theAMDefName = freshJBO.FreshJBOModule";
Then you need to reinstate the line you commented out, to set the application path (but remove the trailing / from the path, as shown):
env.put(JboContext.APPLICATION_PATH, "test/jd");
If that doesn't work, and for future reference, I suggest testing your deployed application module from the Business Component Browser (aka the tester) before trying your hand-coded client. Start the tester, select Oracle8i as the middle tier server type, make sure the other information in the connect window is correct, then click Connect.
Good luck
Blaise -
Obtaining CORBA Object References
I have found two separate references on the Sun site to the different ways in which clients may reference CORBA objects. In each case, three methods are listed, but one item in each list seems to be different from the 'corresponding' item in the other list.
At URL http://java.sun.com/j2se/1.3/docs/guide/idl/jidlInitialization.html, the following list is given:
1. From a string that was specially created from an object reference
2. From another object, such as a naming context
3. From the ORB operation resolve_initial_references()
[Numbers added by me for ease of reference.]
At URL http://java.sun.com/j2se/1.3/docs/guide/idl/jidlUsingCORBA.html, the following list is given:
1. from a factory object. For example, the client could invoke a create method on DocumentFactory
object in order to create a new Document. The DocumentFactory create method would return an
object refererence for Document to the client.
2. from the nameservice. For example, the client could obtain an object reference for the
DocumentFactory by issuing a request on the nameservice.
3. From a string that was specially created from an object reference
Though items 1 and 2 from the first list seem to correspond closely to items 3 and 2 respectively from the second list, item 3 (list 1) and item 1(list 2) do not. Does anybody know how this apparent anomaly can be resolved and which (if either) of these lists is (more?) correct?
Thanks in anticipation.
JanThere really is not an anomaly here. What you are indicating as an anomaly is really two distinct things.
There are always two steps here:
1. How does your client get the initial object reference to the server object(s). The list 1 comprehensively describes that. Typically the initial object references will be few.
2. Once the initial references are acquired, client can make calls using these initial references to get other object references, during the clients life time. The item 1 in list 2 is a way of doing this.
The list 1 is giving you ALL possible ways of acquiring an object reference for the very FIRST time.
Item 1 in list 2 is actually suggesting a pattern or a way or doing something. For example, if your client wishes to create multiple objects of a certain family, you can use a DocumentFactory on the server side. You would acquire initial reference to the DocumentFactory using one of the ways described in List 1. Once the client has the DocumentFactory reference, it can call create on it to create Document objects on the server side. Also, the create() method will return a reference to the Document object to the client. -
Deploying Business Components as CORBA objects in JDev 3.0
I have two JDeveloper 3.0 projects: a "server" project
containing business components generated from my Oracle8i schema
using the wizards, and a "client" project containing an Infobus
application that uses the business components. I have
successfully deployed these locally and have now tried to deploy
the "server" application module as a CORBA object in my Oracle8i
schema (I have successfully deployed and used the "HelloCORBA"
tutorial CORBA object).
When I test my deployment using the Business Component Tester,
however, I get the following messages:-
javax.naming.NameNotFoundException
Nothing bound for specified name.
Has anyone any idea what I might be doing wrong? I haven't.
Howard
nullHoward,
Make sure that the JNDI path in the tester is correct.
The following steps might help you out:
1.Determine the JNDI path for your CORBA object. You can check
this in the deployment profile(choose 'Properties' from the
context menu of the .prf file in the 'deployment' folder. Also,
you can browse your connection (double click on the connection
in the 'Connections' folder) to determine the exact path for
your object.
2.In the 'Connect' pane of the Tester
-choose 'Oracle8i' as the 'Middle Tier Server Type'
-choose the appropriate IIOP connection
-Make sure that the JNDI path is correct
This should get it working...
Please let us know if you have any questions.
Howard (guest) wrote:
: I have two JDeveloper 3.0 projects: a "server" project
: containing business components generated from my Oracle8i
schema
: using the wizards, and a "client" project containing an
Infobus
: application that uses the business components. I have
: successfully deployed these locally and have now tried to
deploy
: the "server" application module as a CORBA object in my
Oracle8i
: schema (I have successfully deployed and used the "HelloCORBA"
: tutorial CORBA object).
: When I test my deployment using the Business Component Tester,
: however, I get the following messages:-
: javax.naming.NameNotFoundException
: Nothing bound for specified name.
: Has anyone any idea what I might be doing wrong? I haven't.
: Howard
null -
Hosting a CORBA object with a Weblogic Container
Hi,
I'm trying to host a CORBA object within a Weblogic (8.1) container
using the weblogic built-in ORB and only using CORBA-compliant APIs.
When I try to obtain the RootPOA using:
org.omg.CORBA.Object obj = orb.resolve_initial_references("RootPOA");
The container throws the exception:
Unexpected System Exception:org.omg.CORBA.ORBPackage.InvalidName
Usually this means that the POA was not registered as an initial
service, but that just can't be the case since I know the weblogic EJB
container uses the POA.
Btw- the handle to the orb was obtained using:
// Initialize the ORB.
String args[] = null;
Properties Prop;
Prop = new Properties();
Prop.put("org.omg.CORBA.ORBClass",
"weblogic.wtc.corba.ORB");
ORB orb = (ORB)new InitialContext().lookup("java:comp/ORB");
Any ideas are greatly appreciated.
MikeThanks Andy!
Btw- orbd must be running for resolve_initial_references() to work.
Seems weird to me.
After which, I was able to host a callback servant in my weblogic
container using the native JDK ORB/POA but now I've run into a deeper
issue. When the client calls back on the hosted callback object, the
JDK ORB processes the request but then raises an
IT_GIOP:REPLY_MESSAGE_NOT_CONSUMED exception.
It's since been brought to my attention that this indicates a
marshalling error with regards to extra bytes being on the stream after
the request has been unmarshaled. Either due to a spotty or older ORB
implementation. The advise is that the JDK ORB is just such an ORB.
I'd like to try using the JacORB within my weblogic container.
Has anyone done this that you know of?
Thanks for the help,
Mike
Andy Piper wrote:
Michael McKnerney <[email protected]> writes:
Hmmn weird. It seems like it wants a URL or something to connect to which seems wrong.
The source for list_initial_services says:
* Get a list of the initially available CORBA services.
* This does not work unless an ORBInitialHost is specified during initialization
* (or unless there is an ORB running on the AppletHost) since the localhostname
* is inaccessible to applets. If a service properties URL was specified,
* then it is used, otherwise the bootstrapping protocol is used.
* @return A list of the initial services available.
So you need an initial host if you use this. However, the root poa is
already registered, so it looks like you can use that. You will need
an initial host if you want to bind things into the NS, in theory you
should be able to use WLS for that.
andy
Thank Andy,
Still no luck, however, the call does not hang it thows and I wasn't catching the
exception and printing the stack trace.
Here's my sample code and the stack trace. Do you see what the problem is?
// Method: ejbFindBigAccounts {
try {
String args[] = null;
Properties Prop = new Properties();
Prop.put("org.omg.CORBA.ORBClass",
"com.sun.corba.se.internal.Interceptors.PIORB");
System.out.println("Initializing the orb...");
ORB orb = org.omg.CORBA.ORB.init(args, Prop);
// Test list_initial_services
System.out.println("Calling resolve_initial_references");
java.lang.String[] ids = orb.list_initial_services();
for (int i=0; i<ids.length; ++i)
System.out.println(ids);
} catch (Exception e) {
System.out.println("Caught Exception: " + e);
e.printStackTrace();
throw new EJBException (e);
Output (including stack trace)
====================
Initializing the orb...
Calling resolve_initial_references
Caught Exception: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed:
No
org.omg.CORBA.COMM_FAILURE: vmCORBAObjectImpl.javacid: SUN minor code: 201 completed: No
at
com.sun.corba.se.internal.iiop.ConnectionTable.getConnection(ConnectionTable.java:148)
at
com.sun.corba.se.internal.iiop.ConnectionTable.getConnection(ConnectionTable.java:65)
at com.sun.corba.se.internal.iiop.GIOPImpl.getConnection(GIOPImpl.java:67)
at
com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:652)
at
com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:594)
at
com.sun.corba.se.internal.corba.InitialNamingClient.getInitialServices(InitialNamingClient.java:997)
at
com.sun.corba.se.internal.corba.InitialNamingClient.cachedServices(InitialNamingClient.java:967)
at
com.sun.corba.se.internal.corba.InitialNamingClient.list_initial_services(InitialNamingClient.java:925)
at com.sun.corba.se.internal.corba.ORB.list_initial_services(ORB.java:2414)
at
examples.ejb20.basic.beanManaged.AccountBean.ejbFindBigAccounts(AccountBean.java:328)
[snip]
Seeing that its trying to get a connection, does that mean I need to run the jdk orbd? I
figured the weblogic server would take the place of orbd. Anyway, I ran the same test
with orbd running and got the same exception and stack trace.
Thanks, Mike
Andy Piper wrote:
Michael McKnerney <[email protected]> writes:
Btw- I will use the J2SE ORB in the meantime. My understanding is that there can only be
one ORB per weblogic server, or can the J2SE co-exist with the existing weblogic ORB? (I
looked at the docs but it was still not clear to me)
They should be able to coexist if you pass the ORB class in as a
property to ORB.init() and are not using RMI-IIOP. The WLS
ORBSingletonClass should be compatible with the Sun one a vice versa.
-Dorg.omg.CORBA.ORBClass=com.sun.corba.se.internal.Interceptors.PIORB
Try putting this in ORB.init() instead.
But now anytime I invoke on an object reference, the call hangs.
Not sure. can you get threaddumps.
andy
[att1.html] -
Specifying timeout for calls on remote CORBA objects
When using a remote CORBA object from a Java client, we make use of a periodic heartbeat call to ensure the remote object is still available.
If the process hosting the remote object dies, we get an exception back immediately after making the call which helps us to know that we need to re-connect.
If, however, the network goes down (i.e. unplug the machine running the process hosting the remote object from the network), things get a little tricker. At this point, you end up relying on the underlying socket timeouts to control how soon you'll get back an exception.
We're using both C++/TAO/ACE clients and Java clients. For the C++ clients, we noticed that the timeout value varied significantly based on operating system. For example, on Windows XP Home, it took 75 seconds to get an exception, but on Windows 2000 Pro, it only took 5 seconds.
The solution for the C++ clients was to make use of a policy override in the ORB, specifying a 5 second timeout. This resulted in a uniform timeout regardless of underlying operating system.
Now, we have to solve the same problem for the Java clients and I'm wondering if there is a similar mechanism for Sun's built-in ORB. Any ideas?here's what I found out. The ORB provided by Sun doesn't appear to provide a policy manager or any other way to specify object request timeouts.
We've ended up using JacORB instead, which very easily plugs into the JDK. With JacORB, we're able to specify an object request timeout using the code below:
long objtimeout = 5; // sets a 5 second timeout
PolicyManager policyManager = PolicyManagerHelper.narrow(
orb.resolve_initial_references("ORBPolicyManager"));
Policy p = new org.jacorb.orb.policies.RelativeRoundtripTimeoutPolicy(objtimeout * 10000000);
policyManager.set_policy_overrides(new Policy[]{ p },
SetOverrideType.ADD_OVERRIDE); -
Is there any solution to delete an corba object immediately?
I want to delete an corba object implemented with java immediately during an request running . But the deactive_object( ) method can not delete this corba object immediately before the request completed.
any other method can help me delete the corba object immediately during an request running?
thanks -:)your tip will be appreciated.
-
Implementing a Webservice with AXIS, which calls CORBA objects
Hi @all!
First my aim is it to invoke a Webservice by a Client. As toolkit for developing this Webservice I use AXIS 1.0. This Webservice in turn should establish a CORBA connection to a third application.
A direct access to the CORBA objects without the AXIS Webservice works fine. The Webservice without the Corba access is also running errorfree.
When trying to implement a Webservice with AXIS, which calls CORBA objects following fault was generated:
"internal Server Error(500)".
Are there known problems with AXIS in conjunction with CORBA?Okay here's the error log file:
1000 of lines, which aren't very helpful for me.
As ORB I use JacORB.
AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultString: (500)Internal Server Error
faultActor: null
faultDetail:
null: return code: 500
<html><head><title>Apache Tomcat/4.1.18 - Error report</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} H3{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException: Servlet execution threw an exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
at java.lang.Thread.run(Thread.java:484)
</pre></p><p><b>root cause</b> <pre>java.lang.NoClassDefFoundError: org/omg/PortableServer/POAOperations
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:195)
at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:187)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:171)
at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:154)
at org.apache.axis.utils.cache.ClassCache.lookup(ClassCache.java:122)
at org.apache.axis.providers.java.JavaProvider.getServiceClass(JavaProvider.java:502)
at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:535)
at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:322)
at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:477)
at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:312)
at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:298)
at org.apache.axis.deployment.wsdd.WSDDDeployment.getServiceByNamespaceURI(WSDDDeployment.java:503)
at org.apache.axis.configuration.FileProvider.getServiceByNamespaceURI(FileProvider.java:273)
at org.apache.axis.MessageContext.getPossibleOperationsByQName(MessageContext.java:226)
at org.apache.axis.message.BodyBuilder.onStartChild(BodyBuilder.java:150)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:459)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:221)
at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNamespaceBinder.java:874)
at org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBinder.java:591)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:747)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1477)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:394)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:232)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:546)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:377)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:304)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
at java.lang.Thread.run(Thread.java:484)
</pre></p><HR size="1" noshade><h3>Apache Tomcat/4.1.18</h3></body></html>
(500)Internal Server Error
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:630)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:131)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:182)
at org.apache.axis.client.Call.invokeEngine(Call.java:2113)
at org.apache.axis.client.Call.invoke(Call.java:2102)
at org.apache.axis.client.Call.invoke(Call.java:1851)
at org.apache.axis.client.Call.invoke(Call.java:1777)
at org.apache.axis.client.Call.invoke(Call.java:1315)
at CsbClient.main(CsbClient.java:82)
[INFO] enterprise - -Mapping Exception to AxisFault <(500)Internal Server Error>
(WSDDDeployableItem.java:312)
at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:298)
at org.apache.axis.deployment.wsdd.WSDDDeployment.getServiceByNamespaceURI(WSDDDeployment.java:503)
at org.apache.axis.configuration.FileProvider.getServiceByNamespaceURI(FileProvider.java:273)
at org.apache.axis.MessageContext.getPossibleOperationsByQName(MessageContext.java:226)
at org.apache.axis.message.BodyBuilder.onStartChild(BodyBuilder.java:150)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:459)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:221)
at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNamespaceBinder.java:874)
at org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBinder.java:591)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:747)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1477)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:394)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:232)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:546)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:377)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:304)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
at java.lang.Thread.run(Thread.java:484)
</pre></p><HR size="1" noshade><h3>Apache Tomcat/4.1.18</h3></body></html>
(500)Internal Server Error
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:630)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:131)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:182)
at org.apache.axis.client.Call.invokeEngine(Call.java:2113)
at org.apache.axis.client.Call.invoke(Call.java:2102)
at org.apache.axis.client.Call.invoke(Call.java:1851)
at org.apache.axis.client.Call.invoke(Call.java:1777)
at org.apache.axis.client.Call.invoke(Call.java:1315)
at CsbClient.main(CsbClient.java:82)
Exception in thread "main" -
Serializing a CORBA object into a buffer
Probably asked a million times but I haven't found it yet. How does one flatten an arbitrary CORBA Object to e.g. a byte[] without writing a pile of code to reinvent what the ORB has to do anyway?
I've tried the normal way of wrapping a ByteArrayOutputStream in an ObjectOutputStream and calling writeObject on that. Passing a TypeCode causes writeObject to throw NotSerializableException, while an Any containing a String results in an IOException whose message is merely the name of the package where it gave up. I guess that's the wrong approach for CORBA.
CORBA has its own org.omg.CORBA.portable.OutputStream (extends java.io.OutputStream) which looks like it should do what I want, and I've seen hints that people have used it that way, but I haven't found any example code, and I haven't found any way to specify where the output goes. What have I missed?
I want this because I'm writing a TradingService and so I need to store arbitrary objects in the database. I don't have any control of this; OMG already wrote the spec. I've begun working up methods that disassemble TypeCodes to XML and reconstitute therefrom, but I really don't want to go there.don't know any specifics myself, but if you go into the javadoc for org.omg.CORBA.portable.OutputStream and click on the "Use" link at the top, you can start to see some interesting places to start looking (e.g. methods which return output streams and the Util methods for writing objects to output streams).
Edited by: jtahlborn on Feb 24, 2010 11:58 PM -
Is there some limitation for the numbers of CORBA objects under Java IDL
Operation System : Windows 98 Second Edition(4.10.2222)
Java 2 SDK version :
java version "1.4.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
I have programmed a distributed application with java IDL.
there are a lot of CORBA objects in my application and all of those objects must registered with the same orb.
At the beginning,I launched 4 CORBA objects,which is the least number of CORBA objects needed to run my application,and the application runs well.Then I increased the number of CORBA objects gradually.But when the number of CORBA objects has been changed to 6,the application runs instably,that is, the application sometimes runs well,and sometimes it generates an error when I launched my client-side program,the error is as follow:
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection(ConnectionTable.java:161)
at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection(ConnectionTable.java:65)
at com.sun.corba.se.internal.iiop.GIOPImpl.getConnection(GIOPImpl.java:67)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:644)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:586)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:838)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at org.omg.CosNaming.NamingContextExtHelper.narrow(NamingContextExtHelper.java:73)
at Client.main(Client.java:19)
the NO.19 line in Client.java is :
NamingContextExt ncref = NamingContextExtHelper.narrow(comobj);
The COMM_FAILURE/SUN-201 means CONNECT_FAILURE.
This will happen if a client gets a reference to an object reference whose server is not yet started,or perhaps not yet initialized.
But I think I have waited for enough long time before launched Client.java?Can anybody help me?Thanks very much....We are trying to connect to corba naming services using Apache/Tomcat5.0 .We are using servlets to call the Corba services.
We are initializing the ORB as follows:
Properties p= new Properties();
p.setProperty("org.omg.CORBA.ORBInitialHost","ramesh");
p.setProperty("org.omg.CORBA.ORBInitialPort","1234");
p.setProperty("org.omg.CORBA.ORBClass","com.sun.corba.se.internal.iiop.ORB");
ORB orb = ORB.init((String[])null,p);
nmref = NamingContextHelper.narrow(orb.resolve_initial_references("NameService"));
NameComponent[] dmNamingComps ={new NameComponent("DATAMgt","")};
DataManagement.DatamanagementFactory data_factory_ref= DataManagement.DatamanagementHelper.narrow(nmref.resolve(dmNamingComps ));
masterDataref = data_factory_ref.createMasterData();
=====================
when we run the program:
we are getting the error message:
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection(ConnectionTable.java:161)
at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection(ConnectionTable.java:65)
at com.sun.corba.se.internal.iiop.GIOPImpl.getConnection(GIOPImpl.java:67)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:644)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:586)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:838)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at org.omg.CosNaming.NamingContextExtHelper.narrow(NamingContextExtHelper.java:73)
at Client.main(Client.java:19)
Can anybody help ?Do we need any other configuration setup apart from the code in Apache/Tomcat? -
Help!!! create & destroy CORBA object at run time
I am develop an program using CORBA (Java IDL and JDK 1.3 on Win 98 OS) that involved login-logout mechanism. Someone can login into my program, by access HTML file from the server machine that contained an applet, via browser (NN 6).
(the client and server run on same machine)
If somebody login, says Mr.X, and make mistakes by type an invalid password, my program still (can) work by opening a wrong account/record belong to other people who (login and) logout last time before Mr.X login. It is a wrong result.
I know the reason why this could be happen, its all because Java IDL support the CORBA transient object type. This transient object has the same lifetime as the execution of the server process that creates it. And it cause a problem for me.
According to the explanation above, i have some questions :
1. How to create, access, and destroy (delete) any CORBA object on demand (at run time) without have to shut down the server (process), in order to release any data/record hold by the CORBA object ?
2. If Java IDL cannot create and destroy a CORBA object on demand (at run time), how do I solve my problem above ?
If Java IDL cannot delete any CORBA object at run time, can it just delete any value (refresh data) that the object hold so any new data can be add again ?
3. if i run my program on 2 different machine, it result an error : COMM_FAILURE minor code 1398079490. How do I fix it ? any solution for this error ?
i really need any help, this program is my final project
i will appreciate any help and answers
thanks in advance
Marsel HoberI'm using the POA implementation in java 1.4, but the api docs
aren't very helpful in terms of what all the various policy
values really do. I've got a servant that gets created by a
request on a different object, and needs to stay around until
the client tells it to go away. All the material that I've found
on how to use CORBA in Java is either pre-POA, or doesn't
cover any kind of management policies like servant retention.
Can someone tell me how to do this, or am I stuck trying to
wade through the CORBA 2.3 spec and hoping that I can
figure out how the stuff really works in Java? -
hi,
where I can found some documentation
on deploying CORBA object from JDeveloper 3.0 to OAS?
Should I also configure something on OAS?
thanks
filippoForget it! it works now. Thank you.
-
Can anyone tell how I can bind a CORBA object (servant) to the WLS JNDI tree.
Thanks,
-SridharHi,
If your query uses "in" you would just create a parameter object for each value in the list. Here's a short example that uses the SCOTT schema:
using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
namespace InListParameter
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
string constr = "User ID=scott; Password=tiger; Data Source=oranet; Pooling=false";
OracleConnection con = new OracleConnection(constr);
con.Open();
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select ename from emp where empno in (:1, :2, :3)";
OracleParameter p1 = new OracleParameter();
p1.OracleDbType = OracleDbType.Decimal;
p1.Value = 7788;
OracleParameter p2 = new OracleParameter();
p2.OracleDbType = OracleDbType.Decimal;
p2.Value = 7839;
OracleParameter p3 = new OracleParameter();
p3.OracleDbType = OracleDbType.Decimal;
p3.Value = 7782;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
Console.WriteLine("ENAME: {0}", dr[0]);
dr.Dispose();
p3.Dispose();
p2.Dispose();
p1.Dispose();
cmd.Dispose();
con.Dispose();
ODP support Oracle spatial or at list using objects??Not in the current release(s).
Will ODP support oracle spetial???A future release may do so.
Hope that helps,
- Mark -
How to call a CORBA Object in a 3rd Party ORB from a EJB
Hello
I found a few articles on the web how to call EJBs for example from C++.
However, I want to do the inverse. I want to resolve an Object (implemented in C++, using OmniORB) via COS-Naming and invoke it from a EJB. I can write a simple Java Client which does this without a problem. But as soon as I try to do the same in EJB I get the following:
[#|2004-11-09T10:48:16.848+0100|WARNING|sun-appserver-pe8.0.0_01|javax.enterprise.resource.corba._DEFAULT_.rpc.transport|_ThreadID=12;|"IOP00710209: (INTERNAL) Unable to create listener thread on the specific port"
org.omg.CORBA.INTERNAL: vmcid: SUN minor code: 209 completed: No
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.createListenerFailed(ORBUtilSystemException.java:3142)
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.createListenerFailed(ORBUtilSystemException.java:3160)
at com.sun.corba.ee.impl.legacy.connection.SocketFactoryAcceptorImpl.initialize(SocketFactoryAcceptorImpl.java:60)
at com.sun.corba.ee.impl.transport.CorbaTransportManagerImpl.getAcceptors(CorbaTransportManagerImpl.java:190)
at com.sun.corba.ee.impl.transport.CorbaTransportManagerImpl.addToIORTemplate(CorbaTransportManagerImpl.java:207)
at com.sun.corba.ee.spi.oa.ObjectAdapterBase.initializeTemplate(ObjectAdapterBase.java:104)
I think there is somehow a conflict because the SUN Appserver also uses CORBA. My Code looks like this:
String[] a = null;
Properties props = new Properties();
final String CORBA_HOST = "arcos";
final String ORB_INITIAL_PORT = "2809";
props.put("org.omg.CORBA.ORBInitialPort", ORB_INITIAL_PORT);
props.put("org.omg.CORBA.ORBInitialHost", CORBA_HOST);
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(a, props);
So I thought this might be because there is already a ORB initialised. So I replaced the last line with
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init();
Which should give me an ORB instance. However I get the following exception:
[#|2004-11-09T11:51:59.206+0100|WARNING|sun-appserver-pe8.0.0_01|javax.enterprise.system.stream.err|_ThreadID=15;|
org.omg.CORBA.NO_IMPLEMENT: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.genericNoImpl(ORBUtilSystemException.java:7085)
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.genericNoImpl(ORBUtilSystemException.java:7107)
at com.sun.corba.ee.impl.orb.ORBSingleton.resolve_initial_references(ORBSingleton.java:311)
at com.ascom.util.CorbaNaming.resolve(CorbaNaming.java:26)
at com.ascom.fxm.FileManager.<init>(FileManager.java:46)
at com.ascom.srv.file.web.FileImporterImpl.importFile(FileImporterImpl.java:146)
Any ideas? Thank you very much in advance.
Oliver JaunPerhaps you could take a look at the following document and see if it meets your needs:
http://java.sun.com/j2se/1.4.2/docs/guide/rmi-iiop/interop.html -
Help... I am trying to publish the object names for two examples that i am trying to impliment at University. Unfortunatly there is very little support for 8i and Corba at the uni and I am appealing for your help.
I have tryed both Jdeveloper and doing it manually in Dos... I am getting the same error message in both for the different examples.
Dos command:
C:\Program Files\Oracle\JDeveloper 3.1.1.2\myclasses>
publish -republish -user scott -password tiger -schema scott -service sess_iiop://scomproject:1521:Oracle8
c:\james\myEmployee employeeServer.Employee.Impl package2employee.EmployeeHelper
Error Message:-
Exception in thread "main" org.omg.CORBA.COMM_FAILURE[completed=MAYBE, reason=java.io.IOException: Peer disconnected socket] at com.visigenic.vbroker.orb.TcpConnection.read(Compiled Code) at com.visigenic.vbroker.orb.GiopConnectionImpl.receive_message(GiopConnectionImpl.java:436)
at com.visigenic.vbroker.orb.GiopConnectionImpl.receive_reply(Compiled Code)
Can anyone help with this please??
nullThe published (jndi) name -- 'c:\james\myEmployee' -- you're passing is invalid. Try replacing this with 'test/james/myEmployee' or something.
You might want to try creating a simple CORBA server object through JDev and deploying it. The cmd line deploy (loadjava and publish) tools that are generated are printed out to the console, so you can see the arguments we pass.
Maybe you are looking for
-
How can I import an image in a report and see it in a RTF generated file? If I follow the help of the Report Builder 6i, and after resizing the image, there are always problems in MSWord - either the image has another size, or it is in some other pla
-
Numbers: Scatter plot naming
Is it possible to plot words next to the points on a scatter plot in Numbers? I am plotting the scatter plot with the x as a year and the y as 0 for a timeline. It is for a Biograpgy project on Steve Job's life and products.
-
How to change the font settings of headers in excel
how tobold the column headers in excel using RGT? kavi
-
Enabling Optical-Out on 15-Inch MBP
I am trying to enable Optical-Out on my MBP. I have installed and connected the TOSLINK cable i bought off monoprice. It says specifically in the description its compatible, i have also read several articles on tis all of which linked to the cable. I
-
hi Here material is qm relavent when doing the GR then lt06--qa32 th material is post in the bin when we do another GR -LT06--QA32 the material is placing in different bin and the quant is same is there anybody to answer what is the process or