RMI Objects running on single cluster memb. only avail on that
Hi,
My setup:
An RMI object shall be bound to a single cluster member.
Only one cluster member has therefore the startup entry. The
RMI Object is thus instantiated only in this one cluster member.
I now expected to have the weblogic.rmi.myclass JNDI entry
replicated into all cluster member's jndi context (thus having
a simple way for implementing a singleton? does this work??).
All clients, which are loadbalanced to a cluster-member
that does not the startup entry will fail to lookup the rmi object's
entry
with the following.
Why is the entry not replicated into the other machines naming context?
javax.naming.NameNotFoundException: 'mybindname'; remaining name
'mybindname'
at
weblogic.rmi.extensions.BasicRequest.sendReceive(BasicRequest.java:44)
at
weblogic.jndi.WLContext_WLStub.lookup(WLContext_WLStub.java:192)
at
weblogic.jndi.toolkit.WLContextStub.lookup(WLContextStub.java:545)
at mypackage.MyClass.lookup(...);
Thank you for any help on this & happy new year
Toby
We too are looking to achieve the same thing. Anyone know the answer to
Tobias's question?
david
Tobias Christen wrote:
> Hi,
>
> My setup:
> An RMI object shall be bound to a single cluster member.
> Only one cluster member has therefore the startup entry. The
> RMI Object is thus instantiated only in this one cluster member.
> I now expected to have the weblogic.rmi.myclass JNDI entry
> replicated into all cluster member's jndi context (thus having
> a simple way for implementing a singleton? does this work??).
>
> All clients, which are loadbalanced to a cluster-member
> that does not the startup entry will fail to lookup the rmi object's
> entry
> with the following.
>
> Why is the entry not replicated into the other machines naming context?
>
> javax.naming.NameNotFoundException: 'mybindname'; remaining name
> 'mybindname'
> at
> weblogic.rmi.extensions.BasicRequest.sendReceive(BasicRequest.java:44)
> at
> weblogic.jndi.WLContext_WLStub.lookup(WLContext_WLStub.java:192)
> at
> weblogic.jndi.toolkit.WLContextStub.lookup(WLContextStub.java:545)
> at mypackage.MyClass.lookup(...);
>
> Thank you for any help on this & happy new year
> Toby
David Michaels <[email protected]>
Director of Technology
ShockMarket Corporation (650) 330-4665
[david.vcf]
Similar Messages
-
Binding RMI object at startup in cluster
Hi
While I have seen similar postings perhaps someone could provide clarity. I have
two nodes in a WL 6.1 cluster. I have a class that implements the ServletContextListener
interface and is invoked on deployment of my app. This class binds checks for
the existence of a bound object and if not found binds one. The first node binds
correctly. When I start the managed server it does not find the bound object.
Is this because the replication was not quick enough? The bound object is n clusterable
RMI object. The idea here is that should the first node fail the second node,
which keeps checking in the interim, will find no bound object and bind one.Does xyzImpl extend UnicastRemoteObject by any chance? If so, delete the exportObject() call, it is already exported by its constructor (i.e. when its constructor calls super()).
-
OS X Server 4.0 Calendar Service only available on local network
I have a mac mini (late 2014) running yosemite 10.10.1 and installed OS X Server 4. I set the server up to run over the internet using a domain name that points to my external ip address.
I have the DNS, users, groups, and open directory configured and started setting up the services. File sharing, Contacts and Calendar all worked great until I tried to set up Messages. I had a problem getting my accounts set up on the client machines. However, the real issue is that the services that worked great had the access status changed from available over the internet at "my.domain" to available on local server.
I have tried many things and I have all the services except one as showing as reachable or available over the internet. Calendar shows as available on your local network, which is not what I want. How can some services be available over the internet and one other not?
In addition the services that are running, randomly change status between only available locally and available over the internet without changing anything in there server app.jepping,
thanks for the reply. Here is the screen shot you asked for....
This is exactly the same as when all my services worked fine. I tried adding calendar from this section but if I select 'all users' and 'all networks' the 'OK' button is greyed out. So I restricted the users to those in a group of mine. This is the screen shot now.
I went to the calendar service to turn it off then on and the access service is still 'available on your local network at server.local
Thanks. -
I need to run multiple external programs concurrently using RMI objects.
have a web based solutiion which uses a backend machine for some processing. I have a RMI based Java proram running on the backend machine and the web server talks with this backend machine through RMI. Now, on this backend machine, I need to call some external program using Process s = Runtime.getRuntime().exec(....). Since this is a web application, multiple clients will connect at the same time and I need to run this external program for multiple clients at the same time.
Here is what I do. I have a separate RMI object bound to registry for each client that connects to the web server. This RMI object implements runnable interface, since I can't extend this class from Thread (it already extends from UnicastRemoteObject). So each time I call upon a method from this object, only one process gets started and other objects need to wait till this process finishes.
I need to start multiple processes at the sametime so that other clients don't have to wait for this thread to finish.
Please let me know if anybody has any other solution than installing an application server on this backend machine.
Here is my code.
public class iLinkOnlineSession extends UnicastRemoteObject implements Session, Serializable, Runnable
public iLinkOnlineSession(String sessName, String sessId, String rootLogs, String rootWrks) throws RemoteException
setSessionId(sessId);
setName(sessName);
ROOT_LOGS = rootLogs;
ROOT_WORKSPACE = rootWrks;
searchKeys_ = new Vector();
searchObjects_ = new Hashtable();
Thread s = new Thread(this);
s.start();
public void run()
System.out.println("running");
public String checkLogin(String user, String passwd)
String msg = "";
String cmd = "iLinkOnlineLogin";
cmd += " param "+ user + " param " + passwd;
System.out.println("cmd: " + cmd);
try
Runtime run = Runtime.getRuntime();
Process proc = run.exec(cmd); // Call to the external program.
InputStream in = proc.getInputStream();
Reader inp = new InputStreamReader(in);
BufferedReader rd = new BufferedReader(inp);
String line = rd.readLine();
while(line != null)
System.out.println(line);
msg += line;
line = rd.readLine();
int res = proc.waitFor();
}catch(Exception e)
e.printStackTrace();
System.out.println("Msg: " + msg);
return msg;
public String searchObject(String user, String passwd, String param1, String paramVal1, String param2, String paramVal2, String param3, String paramVal3, String relLev, String mfgLoc)
String cmd = "iLinkOnlineSearch";
cmd += " param " + user + " param " + passwd + " param " + getSessionId() + " param " + logFile_ + " param " + param1 + " param " + paramVal1 +
" param " + param2 + " param " + paramVal2 + " param " + param3 + " param " + paramVal3 + " param "
+ relLev + " param " + mfgLoc;
System.out.println("cmd: " + cmd);
try
Runtime run = Runtime.getRuntime();
Process proc = run.exec(cmd); // External program.
InputStream in = proc.getInputStream();
Reader inp = new InputStreamReader(in);
BufferedReader rd = new BufferedReader(inp);
FileWriter out = new FileWriter(resultFile_);
System.out.println("Filename: "+resultFile_);
BufferedWriter wout = new BufferedWriter(out);
String line = rd.readLine();
while(line != null)
System.out.println(line);
wout.write(line);
wout.newLine();
wout.flush();
line = rd.readLine();
int res = proc.waitFor();
wout.close();
if(res == 0)
boolean ret = createResultTable();
if(ret == true)
return GlobalConstants.SUCCESS_MSG;
else
return GlobalConstants.ERROR_MSG;
}catch(Exception e)
e.printStackTrace();
System.out.println("getting results");
return GlobalConstants.ERROR_MSG;
}I guess I don't get it.
RMI servers are inherently multi-threaded, so why are you running separate servers for every client? -
I am trying to deploy a MDBean in my cluster ( two servers). The MDBean requires
the destinestion has to each cluster server. It means that I have to deploy my
JMS server over the cluster. This will result multiple destinations (queue or
topic) are created.
Is there a way to run one JMS server with a clustered MDBean?
Thanks,
Taohe
Check out my posting from 4-3 in this thread.
http://forums.ni.com/ni/board/message?board.id=BreakPoint&message.id=5&jump=true
I think I may have answered your question before you asked it.
In that example I use the picture control to manipulate a bunch of rectangular images of booleans.
I hope this helps,
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
Rmic settings for singleton RMI service deployed in a cluster ?
We want to deploy an RMI service on a single machine in the cluster
only. What happens if we specify "-clusterable" to rmic when compiling
the stubs for that service - will it be smart enough to know a runtime
that the service has only been deployed on one machine in the cluster
and direct calls there?
david
David Michaels <[email protected]>
Director of Technology
ShockMarket Corporation (650) 330-4665
[david.vcf]
Thanks for your reply John!
I was hoping APS could do something like that .. I am not sure if restoring sessions of a dead APS cluster node on another APS would be helpful but I can think of one situation where a drill-through report is running for a long time on the Essbase server and APS goes down.. it would be good to have the other APS to take up the session and return the drill-through output to the user. -
Hi all,
I am looking for some information about clustering RMI objects. I have read as much
as I can find about it, not much seems to be in the wl docs.
I have read that if the server that bound the rmi object into jndi goes down, the
rmi server will no longer work. When I tested this out, the server seemed to continue
working and using the node in the cluster that was still running.
I am wondering what the difference between declaring the RMI object to be clusterable
and setting the WLContext.REPLICATE_BINDINGS flag to false when creating the context
to bind the RMI objects, and binding a seperate RMI object into the tree, one for
each node in the cluster.
is there some docs I can read about this? Thanks for any information you can give
me about this.
-chrisbwit <[email protected]> wrote:
In article <[email protected]>, [email protected]
says...
Hi all,Hi Chris.
I am looking for some information about clustering RMI objects. I haveread as much
as I can find about it, not much seems to be in the wl docs.
I have read that if the server that bound the rmi object into jndi goesdown, the
rmi server will no longer work. When I tested this out, the server seemedto continue
working and using the node in the cluster that was still running.If a server offering an RMI object via JNDI goes down the binding to
that object is removed from JNDI in all the other servers in the
cluster. Other replicas of that object may be available and will
continue to be used as you discovered.
I am wondering what the difference between declaring the RMI object tobe clusterable
and setting the WLContext.REPLICATE_BINDINGS flag to false when creatingthe context
to bind the RMI objects, and binding a seperate RMI object into the tree,one for
each node in the cluster.Marking the RMI object as clusterable causes WLS to generate a replica
aware stub for it. This stub is aware of all the replicas of the object
within the cluster and provides load balancing and failover. When you
bind a RMI object on multiple servers with REPLICATE_BINDINGS set to
false you have a bunch of individual, unrelated objects. Your clients
must contact the particular server running the objects and there will be
no load balancing or failover, all client calls will be serviced by the
object on the server which supplied the stub.
is there some docs I can read about this? Thanks for any informationyou can give
me about this.I thought the WLS RMI Programmer's Guide was pretty clear about how this
worked.
Well, you are right, the docs are clear on what they talk about, but as I mentioned,
when I marked the objects with REPLICATE_BINDINGS set to false, the client still
sent a comma delimited list of servers to create the InitialContext, and we still
observed load balancing, and what looked like failover. This is why we were confused,
we expected to see only one server do all the work (the first in the comma delimited
list), and for failures when that server was brought down. I will take a look at
our configuration and make sure we didnt make a mistake someplace in here.
Regards,
Bob
-chris -
RMI client running from different machine giving error
HI all
I am trying to run the sample application getStart hello world.
I am able to run the java applet from the same machine ....
but i am get error when i am trying run client applet from the different machine .
(HelloApplet exception: access denied (java.net.SocketPermission)
client applet on machine1 and server and registory on machine2 in same lan .
i copied the Helloapplet.class and Helloclient.html to machine1.
appletviewer Helloclient.html
but the java version is different in both machines.......
can any one give some idea ....
the errror i am geting is :
HelloApplet exception: access denied (java.net.SocketPermission Neind-ws-003 res
olve)
java.security.AccessControlException: access denied (java.net.SocketPermission N
eind-ws-003 resolve)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:272)
at java.security.AccessController.checkPermission(AccessController.java:
399)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:545)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1042)
at java.net.InetAddress.getAllByName0(InetAddress.java:559)
at java.net.InetAddress.getAllByName0(InetAddress.java:540)
at java.net.InetAddress.getByName(InetAddress.java:449)
at java.net.Socket.<init>(Socket.java:100)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirect
SocketFactory.java:25)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaster
SocketFactory.java:120)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:499)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:190
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:174)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:318)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Naming.java:84)
at examples.hello.HelloApplet.init(HelloApplet.java:23)
at sun.applet.AppletPanel.run(AppletPanel.java:344)
at java.lang.Thread.run(Thread.java:484)
The helloapplet.java code is :
package examples.hello;
import java.applet.Applet;
import java.awt.Graphics;
import java.rmi.Naming;
import java.rmi.RemoteException;
public class HelloApplet extends Applet {
String message = "blank";
// "obj" is the identifier that we'll use to refer
// to the remote object that implements the "Hello"
// interface
Hello obj = null;
public void init() {
try {
System.out.println("Path looking: " +getCodeBase().getHost());
//obj = (Hello)Naming.lookup("//" +
// getCodeBase().getHost() + "/HelloServer");
obj = (Hello)Naming.lookup("//Neind-ws-003/HelloServer");
message = obj.sayHello();
} catch (Exception e) {
System.out.println("HelloApplet exception: " +
e.getMessage());
e.printStackTrace();
public void paint(Graphics g) {
g.drawString(message, 25, 50);
The helloclient.html code:
<HTML>
<title>Hello World</title>
<center> <h1>Hello World</h1> </center>
The message from the HelloServer is:
<p>
<applet
code="examples.hello.HelloApplet"
width=500 height=120>
</applet>
</HTML>Your problem is at the following line.
obj = (Hello)Naming.lookup("//Neind-ws-003/HelloServer");
The line you had commented beforehand is
//obj = (Hello)Naming.lookup("//" +
// getCodeBase().getHost() + "/HelloServer");
This worked because the applet was being retreived from the same server where the RMI server exists.
Remember, applets can only connect themselfs to the same host they are stored in and retreived from. This is because of VM, the sandbox does not allow you to connect to other machines other than the server where it resides on. If you use a applet viewer it might work if you loosen the security features. On a browser i do not belive it can be done. Maybe if you modify your security options for the VM you are able to achieve something, but personally i'm going for the "It cannot be done " answer because of what I said before.
Hope this helps
If any trouble then reply and I'll answer later.
Rui P. -
In any release of SD, if I have a single worksheet containing 10 sqls. Is it possible to place the cursor on any of the sql and run only that sql, yet, append its output to existing output window. I can then select another sql and execute it and keep appending output. In other words, do not clear existing output or start a new output tab.
As it exists today (in any release), I can either 'run script' which does append, but it executes all the sql (non-selective). Alternately, I can 'run statement' to selectively run a single sql, but it will clear the output window (or if pinned), start a new one. None of this is what I want.
Thank you.Select the query you want to run. Execute it via F5. Then highlight the next query and repeat.
The output will append to the Script Output panel.
There's no way to get 2 queries to share a grid, unless you were to run them as a single query a la UNION. -
Deploying more than one webapplication on single cluster
Hello Folks,
Is there a way to deploy more than one webapplication on single cluster of weblogic. Presently, we are getting an error while deploying second webapplication as
“Context path is already in use by the module: First Application Name”.
Awaiting reply, ...Thanks in Advance :)
AmitHi,
Yes, We can. For Instance . Your weblogic cluster consist of two managed servers. Each managed server different port number.
managedserver1: http://localhost:7003
managedserver2: http://localhost:7005
so your webapplication context name is same all managed servers.
http://localhost:7003/context,http://localhost:7005/context. you should select running weblogic cluster on jdeveloper ide when you deploying webapplication to server then the webapplication deployed all managed server. -
How to use RMI objects in a servlet
Hi,
I have just run the example RMI program in the java tutorial in my linux pc. Also I have another method to just echo a string back. It works fine when calling from command line.
Now I want to write a servlet that get a string when POSTed and call the RMI objects echo method and display the returned string.
I use Tomcat-5.0 which is installed in /usr/local. I moved the remote object interface jar to the common/lib folder and import the interface in my Servlet. I use the following statements inside the servlet to get the RMI object reference.
Registry registry = LocateRegistry.getRegistry("localhost");
Rser comp = (Rser) registry.lookup("rmiser");When i use this in my servlet the tomcat stops working.
Also I don't know how to specify the code base and security policy which I use in command prompt when calling RMI object.
Pls suggest me what to do and also specify any resources that explain this task step by step.
Thanks.restarted the system and caught the following exception while calling the servlet.
Apr 30, 2009 12:24:15 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3861 ms
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
at java.net.Socket.connect(Socket.java:513)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at RequestParamExample1.doGet(RequestParamExample1.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at filters.ExampleFilter.doFilter(ExampleFilter.java:101)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:619)
Apr 30, 2009 12:25:19 PM org.apache.coyote.tomcat5.CoyoteAdapter service
SEVERE: An exception or error occurred in the container during the request processing
java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.Thread.setContextClassLoader(Thread.java:1351)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.Thread.setContextClassLoader(Thread.java:1351)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1623)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1608)
at java.lang.Thread.run(Thread.java:619)
Hope u can find it now.
the line
at RequestParamExample1.doGet(RequestParamExample1.java:94)
is the file I am editing and using to call RMI.
Edited by: itsraja on Apr 30, 2009 12:06 AM -
Run test uut entry point only once
Hi,
I want to avoid that users can run test uuts entry point more than once. I use an operator interface written in CVI 7.1.1 and netry point button is deactivated when run state changes. But after loading the application sometimes is too slow so the user can press this button twice before it is deactivated.
So is there any possibility to avoid running this entry point more than one time?
Regards
SteffenSteffen,
Thank you so much for the help. You recommendations worked perfectly. Both of us implemented more or less the same behavior in our operator interfaces, although we used slightly different methods. Here is what I did:
I established a count variable in my operator interface that is initially set to 0. Each time the Test UUTs or Single Pass button is pressed, I increment the count by 1. I determine that the Test UUTs or Single Pass button is pressed by registering for and handling the Application Manager PreCommandExecute event. In my callback for this event, I examine the returned Command and look at its EntryPointIndex property to see if the index is 0 (Test UUTs) or 1 (Single Pass). If it is, I increment the count variable count by 1. If the index is not 0 or 1, I do nothing. Once execution has stopped, I reset the count variable back to 0. I do this by registering for and handling the ExecutionView Manager RunStateChanged event (as you recommended). In my callback for this event, I examine the returned newRunState to see if it stopped (numerical value of 3). If it is, I set the value of the count variable back to 0. If it isn't stopped, I do nothing.
This method is basically the same as the one you propose. This method allows you to use the built in TestStand buttons instead of having to use those found in your development environment. The only drawback is that they don't disable and gray out during execution; they just do nothing when an execution is in progress and the operator presses them. -
How can we determine exactly what server an RMI object is bound to?
We have RMI objects that bind to a server in a cluster. How can we determine for
monitoring purposes what server a RMI object is currently bound to /executing
on?
We have tried the most of the Mbeans but can't find one that returns runtime info
for startup classes or RMI objects.
We have a new monitoring requirement we are trying to satisfy.try get the value of PKEY_OfflineAvailability using shell property system APIs (SHGetPropertyStoreFromParsingName or ShellFolderItem.ExtendedProperty)
Visual C++ MVP -
Delete data for a single dimension member
Is there anyway to delete all the data for a single dimension member from a particular cube?
olap version: 11.2.0.3Nasar's approach should work, so I would use it so long as it performs well. But I have (several years ago) seen performance issues with CLEAR VALUES when it is applied to something smaller than an entire partition. So here is another method that also uses the FOR...BUILD construct. It clears the value of the PRICE measure in PRICE_COST_CUBE for PRODUCT = '48'. The cube has only two dimensions, TIME and PRODUCT, and I only want to assign to the leaf level of TIME, which is MONTH.
BEGIN
DBMS_CUBE.BUILD(Q'!
"PRICE_COST_CUBE" USING(
FOR
"TIME" LEVELS ("TIME"."MONTH"),
"PRODUCT" WHERE "PRODUCT".DIM_KEY = '48'
BUILD (SET PRICE_COST_CUBE.PRICE = NULL ))!',
PARALLELISM=>0,
ADD_DIMENSIONS=>FALSE);
END;
/You can increase parallelism here if your cube is partitioned. If you need to clear out other measures at the same time, then add additional SET command in the central block. E.g.
BUILD
SET PRICE_COST_CUBE.PRICE = NULL,
SET PRICE_COST_CUBE.COST = NULL
)After this step you can re-aggregate the cube to make the aggregate values reflect the change.
BEGIN
DBMS_CUBE.BUILD(Q'!
"PRICE_COST_CUBE" USING(
FOR
"TIME" LEVELS ("TIME"."MONTH"),
"PRODUCT" WHERE "PRODUCT".DIM_KEY = '48'
BUILD (SET PRICE_COST_CUBE.PRICE = NULL ),
SOLVE)!',
PARALLELISM=>0,
ADD_DIMENSIONS=>FALSE);
END;
/The simple assignment to NULL will generate a simple assignment in the OLAP DML.
PRICE_COST_CUBE_STORED=NAYou can force the code to loop over the existing composite by replacing NULL with something that evaluates to NULL, but involves the composite.
SET PRICE_COST_CUBEW.PRICE = NVL2(NULL, PRICE_COST_CUBE.PRICE, NULL)Here is the generated OLAP DML assignment.
PRICE_COST_CUBEW_STORED=NVL2(NA, GLOBAL.GLOBAL!PRICE_COST_CUBEW_PRICE
, NA) ACROSS GLOBAL.GLOBAL!PRICE_COST_CUBEW_COMPOSITE -
How to register a regular rmi object in the class which is not setted as startup classes?
hi:
it seems the rmi object can only be registed in a startup class,
is there any way to do this in an nostartup class?
Thanks for any clue.
Reno hu
TCSIYes.
It is possible to export an RMI object from a servlet's init() method. You
will have to specify a <load-on-startup> tag in the web.xml deployment
descriptor, but otherwise, it's pretty straightforward to bind/unbind an RMI
object when an application is deployed/undeployed.
-Don
Andy Piper wrote:
"Reno hu" <[email protected]> writes:
No
hi:
it seems the rmi object can only be registed in a startup class,
is there any way to do this in an nostartup class?
Thanks for any clue.
Reno hu
TCSI
" .sigs are like your face - rarely seen by you and uglier than you think"
mail: [email protected]
Maybe you are looking for
-
How do i remove the email alert tone from my nokia...
i find the email alert tone really annoying as the fone syncs every 5 minutes. how can i remove it?
-
No more "current and next month" list on left of iCal
Since the upgrade to Lion, the current and next month list on the left is gone. When I want to reschedule an event, I used to look on the left to see the dates in the next month, or current month if in week view etc .... now it's not there. If I want
-
Error while passing parameter fot class method
Hi abapers, i am trying to do alv grdi dispaly using class cl_gui_alv_grid. i am getting error "ITAB1" is not type-compatible with formal parameter 'IT_OUTTAB'. i attached code here. Internal Tables types: begin of itab, matnr type mara-matnr,
-
Can somone give me a link to where i can buy a Zen Micro Photo Pink? I li've in the USA, Thanks alot, Sorry i did not find this on search.
-
Hello There, i think i have a problem, ihave created a form using Adobe Acrobat X, and distributed it, then the distributed one, is filled using a little application that fill the fields using a SQL database, after that, that little application gener