Calling 16 bit OLE server from Forte H2
All,
A Forte application loads and makes calls to a 16 bit OLE server. When the
Forte application terminates the 16 bit OLE server remains loaded and is
visible to the task manager.
It is surprising that the OLE automation server is visible after the
calling application has terminated and I have some questions:
1. Has anyone encountered this behaviour?
2. Does it cause problems?
3. Is there a known solution?
4. What is causing this behavior.?
The Forte application executes on a NT 4.0 client using Forte release H2.
The OLE automation server was written in VB. 4.0 and is a 16 bit solution.
Thanks for your help,
Eamonn.
not sure if anyone is watching this thread anymore but i have this scenario. i am using the excel connection manager in SSIS to create an excel spreadsheet with VS 2012. To do this from what I have read I am required to use the 32-bit driver for "Microsoft
Access database engine 2007", if I use the 64-bit driver I cannot connect to the Excel connection manager. i get 0xc020801c message.
i can install the 32-bit "Microsoft Access database engine 2007" and resolve this problem. but i also have a stored procedure that creates a spreadsheet (i use this because i have to leave some cells intact), it appears to require the
64-bit "Microsoft Access database engine 2007". in 32-bit mode i get the following message
Msg 7438, Level 16, State 1, Procedure sp_CreateGRfile, Line 26
The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server.
so i need both the 32-bit "Microsoft Access database engine 2007" and 64-bit "Microsoft Access database engine 2007".
any thoughts on getting around this issue?
Similar Messages
-
How to call an external server from Webdynpro program?
Hi All,
i have a requirement in which i have to call an external server from Webdynpro ABAP program.
how to imphi ,
do u mean u need to call the external link from ur WD ABAP application ?
if so , u either create
1 a Link to URL ( LTU ) UI element and call the external link using that
2 if u wish to use some other fuctionality and thn wish to call the URL in ur application ,u write this piece of code in ur relevant on Action method :
data: lo_window_manager type ref to if_wd_window_manager.
data: lo_api_component type ref to if_wd_component.
data: lo_window type ref to if_wd_window.
data: ld_url type string.
lo_api_component = wd_comp_controller->wd_get_api( ).
lo_window_manager = lo_api_component->get_window_manager( ).
ld_url = ''. // ur external sever link here
CALL METHOD lo_window_manager->CREATE_EXTERNAL_WINDOW
EXPORTING URL = ld_url
RECEIVING WINDOW = lo_window.
lo_window->open( ).
I hope u wud be able to create URL now .
regards,
amit
Edited by: amit saini on Oct 13, 2009 11:25 AM -
Calling foreign EJB server from Weblogic
Hi,
I'm trying to invoke an EJB hosted in an old PowerTier EJB Container from an 8.1 SP5 hosted EJB, and I'm running in to problems. (PowerTier is based on the JBroker ORB)
So far the only way I can get it to work is by replacing Weblogic's ORB implementation with the JBroker one:
-Djavax.rmi.CORBA.StubClass=com.sssw.jbroker.rmi.StubDelegate
-Djavax.rmi.CORBA.UtilClass=com.sssw.jbroker.rmi.UtilDelegate
-Djavax.rmi.CORBA.PortableRemoteObjectClass=com.sssw.jbroker.rmi.PortableRemoteObjectDelegate
But I'd like to avoid doing this if possible.
So I'd like to get this to work using the WL RMI-IIOP implementation to integrate with the PowerTier/JBroker server.
After looking at : http://forums.bea.com/bea/message.jspa?messageID=202437541&tstart=0
I tried the following:
Properties config = new Properties();
config.setProperty(
Context.PROVIDER_URL, "<b>iiop</b>://xxx.xxx.xxxxx.xxx:389/cn=Instance1,ou=Development,cn=Xxxx%20Xxxxxxx%20Xxxxx,ou=Components,cn=Xxxxxx%20Xxxx,ou=Applications,o=xxxxxxxx,c=uk");
InitialContext context = new InitialContext(config);
URL changed to protect the innocent - but format maintained.
When the server executes this I get the following exception:
javax.naming.InvalidNameException: url does not contain a port
at weblogic.corba.j2ee.naming.NameParser.parseURL(NameParser.java:419)
at weblogic.corba.j2ee.naming.ORBHelper.parseURL(ORBHelper.java:533)
at weblogic.corba.j2ee.naming.ORBHelper.getORBReference(ORBHelper.java:440)
at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:97)
at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:42)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:135)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:195)
Any idea what is causing this exception? If I replace the '%20' with a normal spaces it makes no difference.
Am I going about this the right way?
Thanks!Getting a bit closer now.
The Object retreived from LDAP was a javax.naming.Reference - which contains the IOR for the Home interface.
// Get IOR from LDAP
InitialContext context;
Hashtable config = new Hashtable();
config.put(Context.PROVIDER_URL,"ldap://<host>:389/");
config.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
context = new InitialContext(config);
Reference reference = (Reference)context.lookup("<path to home>");
// Get IOR from reference
String ior = "" + reference.get(0).getContent();
// Get WLS ORB
ORB orb = (ORB)new InitialContext().lookup("java:comp/ORB");
Object object = orb.string_to_object(ior);
FooHome home = (FooHome)PortableRemoteObject.narrow(object, FooHome.class);
Foo foo = home.create();
// Everything works fine up to here.
foo.invokeMethod(); // <-- This fails with the following exception :
java.rmi.RemoteException: ; nested exception is:
org.omg.CORBA.BAD_OPERATION: vmcid: 0x0 minor code: 0 completed: No
at weblogic.iiop.OutboundRequestImpl.sendReceive(OutboundRequestImpl.java:197)
at weblogic.iiop.IIOPRemoteRef.invokeInternal(IIOPRemoteRef.java:205)
at weblogic.iiop.IIOPRemoteRef.invoke(IIOPRemoteRef.java:153)
at ztkt.pl.Foo_IIOP_WLStub.invokeMethod(Unknown Source)
at com.xyz.ezs.wl.ejb.PLProxyBean.invoke(PLProxyBean.java:56)
at com.xyz.ezs.wl.ejb.PLProxy_o3b3ao_EOImpl.invoke(PLProxy_o3b3ao_EOImpl.java:45)
at com.xyz.ezs.wl.ejb.PLProxy_o3b3ao_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:492)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:435)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:430)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:35)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused by: org.omg.CORBA.BAD_OPERATION: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:306)
at java.lang.Class.newInstance(Class.java:259)
at weblogic.iiop.ReplyMessage.getThrowable(ReplyMessage.java:337)
at weblogic.iiop.InboundResponseImpl.getThrowable(InboundResponseImpl.java:62)
at weblogic.iiop.OutboundRequestImpl.sendReceive(OutboundRequestImpl.java:179)
... 15 more
(Method, class and package names changed.)
Has anyone seen this before? Any idea what might be causing it? -
Calling a PL/SQL from Forte code
Hi, We are using the Sun UDS 5.1.3
I need to call directly from the code a PL/SQL stored procedure. It is true that this would defeat the Forte layer purpose but I have a very specific case. Is there an easy way to do so?I don't remember how after all these years, but I remember that I made a native Informix call in a special way. So it seems logical that you should be able to do the same for Oracle...
Scott -
Calling LabView ActiveX Server from TCL?
Does anyone have experience calling a LabView ActiveX server vi from
TCL? I created a simple VI with one control (labeled "A") and one
indicator (labeled "B") and a +1 adder between them. I can load and
open the VI from TCL:
package require tcom
set lv [::tcom::ref createobject "LabView.Application"]
set viPath "D:\\National Instruments\\LabView\\Activity\\a.vi"
set vi [$lv GetVIReference $viPath]
$vi FPWinOpen True
But when I try to send in data:
$vi -namedarg Call A 1
I get the error message "unknown parameter A".
I have also attempted to duplicate the "ActiveX Server" example
from the LabView help file, calling "Frequency Response.vi". This
approach encounters the same error message:
% package require t
com
3.0
% set lv [::tcom::ref createobject "LabView.Application"]
::tcom::handle0x013202F4
% set viPath "D:\\National
Instruments\\LabView\\examples\\apps\\freqresp.llb\\frequency
Response.vi"
D:\National Instruments\LabView\examples\apps\freqresp.llb\frequency
Response.vi
% set vi [$lv GetVIReference $viPath]
::tcom::handle0x01335AE8
% $vi FPWinOpen True
% $vi -namedarg Call Amplitude 10
unknown parameter Amplitude
If anyone can point me in the right direction, or give me an
example of how to do this I would greatly appreciate it.
TIA.
LeslieIn article ,
Leslie Brooks wrote:
>"Bruce Hartweg" wrote in message
>news:...
>> "Chin Huang" wrote in message
>news:[email protected]...
>> >
>> > I don't use LabView, but from the Visual Basic example I saw, it seems
>> > the Call method takes two arguments. The first is an array of parameter
>> > names and the second is an array of parameter values. Try to send in
>> > data with the Tcl command
>> >
>> > $vi Call [list A] [list 1]
>>
>> I'm unable to help the original question (don't know LAbView or VB stuff) but
>> just want to point out that [list A] is equal to A and [list 1] is the
>same as 1.
>>
>> Bruce
>
> I know what is supposed to be passed to the 'Call' method. Doing
>this:
>
>set inst [::tcom::info interface $vi]
>$inst methods
>
> produces (among other things):
>
>{1015 VOID Call {{{in out} {VARIANT *} paramNames} {{in out} {VARIANT
>*} paramVals}}}
>
> So the 'Call' method is expecting two parameters, both pointers
>to variants. TCOM appears to be passing the correct parameter type
>because the TCOM documentation says that a TCL List maps to a
>one-dimensional array of VT_VARIANT. However, the results are
>INvariant (bad pun intended):
>
>% $vi -namedarg Call Amplitude 10
>unknown parameter Amplitude
>% $vi -namedarg Call [list Amplitude] [list 10]
>unknown parameter Amplitude
>% $vi -namedarg Call [list Amplitude] [list [::tcom::na]]
>unknown parameter Amplitude
>% set i 5
>5
>% $vi -namedarg Call [list Amplitude] {incr i}
>unknown parameter Amplitude
>% $vi -namedarg Call [list Amplitude] [list [incr i]]
>unknown parameter Amplitude
>% $vi -namedarg Call Amplitude [incr i]
>unknown parameter Amplitude
>
> Who can help me with this? Who is the LabView Guru?
Try invoking the Call method without the -namedarg option. The
-namedarg option doesn't work the way you seem to think it works. The
-namedarg option provides a way to specify arguments named from the
method's parameter specification. For example, you discovered that the
Call method take two parameters named "paramNames" and "paramVals".
Tcom returns the error "unknown parameter Amplitude" because "Amplitude"
doesn't match either parameter name. -
Getting APPSRV_JNDI_LOOKUP_ERROR while calling CAF Ext Serv from WebDynpro
Hi,
Iam developing a Composite application using CAF External Service & Application Service with a Web Dynpro UI wherein all the business logic is developed and invoked as web services. I do not face any problem in generating project code, building, deploying and running the application in my machine. But when I deploy the relevant .ear files to some other machine, I get APPSRV_JNDI_LOOKUP_ERROR and Iam unable to perform any operation which invokes a web service.
Iam only trying to deploy in some other machine the following .ear files available in my machine available at ...\LocalDevelopment\DCs\sap.com\project\... folder :-
sap.com~project.ear
sap.comprojectmetadata.ear
sap.comprojectpermissions.ear
sap.comprojectwebdynpro.ear
The following is the exception trace that I get :-
===========================================================
Message : APPSRV_JNDI_LOOKUP_ERROR
[EXCEPTION]
com.sap.caf.rt.exception.ServiceException: Object not found in lookup of ZWSD__MATERIAL__SAVEDATA.
at com.sap.pxwebservice.utils.HomeFactory.getLocalHome(HomeFactory.java:60)
at com.sap.pxwebservice.appsrv.materialsavedata.MaterialSaveDataBean.getZWSD__MATERIAL__SAVEDATA(MaterialSaveDataBean.java:341)
at com.sap.pxwebservice.appsrv.materialsavedata.MaterialSaveDataBean.MaterialSaveData(MaterialSaveDataBean.java:315)
at com.sap.pxwebservice.appsrv.materialsavedata.MaterialSaveDataLocalLocalObjectImpl0.MaterialSaveData(MaterialSaveDataLocalLocalObjectImpl0.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
===========================================================
Please let me know :-
1) I find that always one more file called .ear is created under ...\LocalDevelopment\DCs\sap.com\project\webdynpro\_comp
But Iam unable to deploy this because it always throws invalid ear error. If I need to deploy this also, how do I do it ?
2) Is my deployment approach correct ? Is there any other simpler approach ?
3) If I need to deliver the project binaries to a third party how do I package them to ensure that it can be re-deployed at the other end ?
Thanks in advance,
Regards,
RajkumarLooks like a known issue with missing jar files.
Please refer to Oracle support document - [ID 1332553.1] -
Hi all,
We are considering the use of DCE RPC with Forte.
I know that it is possible to both call-in and call-out to DCE from
Forte, and we are primarily interested in calling out, i.e.
presenting an existing set of DCE RPCs as methods in a virtual Forte
service object to be invoked by Forte clients. What we would like to
know is:-
In this scenario, what would be used as the interacting mechanism
between the Forte client and the virtual service object containing
the DCE RPCs? Would it be DCE instead of Forte messaging?
Am I correct to think that we won't be able to use Forte features
such as load balancing, fail-over, and asynchronous method invokation
on this virtual service object? Are there any other Forte features
which we won't be able to utilize?
Anyone can share their experiences on this subject?
Cheers
Michael Chiu.Michael,
In this scenario where Forte is front-ending the DCE functions
with a service object, the Forte clients would use standard Forte
messaging to send messages to this Forte partition which in turn
would use DCE messaging to call-out to your DCE services. Given
that, the Forte clients could still use the benefits of Forte
messaging such as async, load balance, etc.
Bobby
At 01:07 PM 1/24/97 +0800, Michael Chiu wrote:
Hi all,
We are considering the use of DCE RPC with Forte.
I know that it is possible to both call-in and call-out to DCE from
Forte, and we are primarily interested in calling out, i.e.
presenting an existing set of DCE RPCs as methods in a virtual Forte
service object to be invoked by Forte clients. What we would like to
know is:-
In this scenario, what would be used as the interacting mechanism
between the Forte client and the virtual service object containing
the DCE RPCs? Would it be DCE instead of Forte messaging?
Am I correct to think that we won't be able to use Forte features
such as load balancing, fail-over, and asynchronous method invokation
on this virtual service object? Are there any other Forte features
which we won't be able to utilize?
Anyone can share their experiences on this subject?
Cheers
Michael Chiu.
Bobby Carp Forte Software, Inc.
Mailto:[email protected] 1800 Harrison St. 15th Floor
voice: 510-869-3451 Oakland, CA 94612
fax: 510-834-1508
************************************************************ -
Why SCCM 20012 Install fails with remote 64 bit SQL Server but proceeds for remote 32 bit SQL Server
I have the following setup:
AD User accounts
- SQLAdmin (used to run SQL Services i.e. Database Engine)
- SCCMADmin (used to install SCCM 2012)
SPN registered for user account SQLAdmin
setspn -S MSSQLSvc/SQL.Domain_Name:1432 Domain_Naem\SQLAdmin
setspn -S MSSQLSvc/SQL:1432 Domain_Name\SQLAdmin
setspn -S MSSQLSvc/SQL.Domain_Name:1433 Domain_Naem\SQLAdmin
setspn -S MSSQLSvc/SQL:1433 Domain_Name\SQLAdmin
and checked with setspn -L TESTING\SQLAdmin
1 SERVER called SQL
32bit Server with SQL Server 2008 + SP3 + Cumulative Update 6
2 SQL instances - Default (MSSQLSERVER) and
SCCM2012
MSSQLSERVER instance uses TCP port 1433
SCCM2012 Instance users TCP port 1432 (no dynamic ports)
User accounts that have been given public and sysadmin SQL server roles
on both instances are: SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
Client Protocols TCP enabled (and Named Pipes) (checked via SQL Server Configuration Manager)
Local Administrators Group on this server has members - SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
Firewall turned on with access allowed on Ports 1432, 1433, 4022,445, and WMI - WMI-in, DCOM-in and ASync-iN builtin rules allowed\enabled.
1 SERVER called SQL3
64bit Server with SQL Server 2008 + SP3 + Cumulative Update 6
2 SQL instances - Default (MSSQLSERVER) and
SCCM2012
MSSQLSERVER instance uses TCP port 1433
SCCM2012 Instance users TCP port 1432 (no dymanic ports)
User accounts that have been given public and sysafmin SQL server roles on both instances are:
SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
Client Protocols TCP enabled (and Named Pipes) (checked via SQL Server Configuration Manager)
Local Administrators Group on this server has members - SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
Firewall turned off
1 SERVER called SCCM
64bit Server that is to be the Primary Site Server\MP for SCCM 2012
ODBC link to SQL\SCCM2012,1432
ODBC link to SQL3\SCCM2012,1432
ODBC uses SQL Native Client 10.0 (64 bit)
Both ODBC connections when TESTed pass and suggest connectivity to SQL Servers
Install process doe SCCM2012
Tried to install SCCM 2012 RC2 when logged in to SCCM Server as AD user account
SCCMAdmin, and when utilising the SCCM2012 SQL instance on
32 bit server of SQL install proceeds barring warning about 8GB rec, for SQL Server. Then fails on PKI certificate issue. Installation (chose HTTP for MP). I beleive the PKI failure as install starts is
due to the fact that SCCM 2012 needs its database server to b 64 bit ?
Thus i then tried to install SCCM 2012 RC2 when logged in to SCCM Server as AD user account SCCMAdmin, and
when using the SCCM2012 SQL instance on
64 bit server of SQL install proceeds but fails at checking stage and says:
SQL Server sysadmin rights FAILED SQL3.Domain_Name
Either the user account running Configuration Manager Setup does not have sysadmin SQL Server role permissions on the SQL Server instance selected for site database installation, or the SQL Server instance could not be contacted to verify permissions. Setup
cannot continue.
and
Site System to SQL Server communication WARNING SCCM.Domain_Name
A communication error has been detected between the specified site system and the site database computer. This error can occur when the site database server is offline or if a valid SPN has not been registered in Active Directory Domain Services for the SQL
Server instance hosting the site database. Setup cannot continue.
Why does the install of SCCM 2012 with 32 bit SQL proceed further than the install with 64 bit SQL, with the latter process failing as above error meesages show and yet both servers are set identically (apart from temporary turning off Firewall on the 64
bit server) and during the install the Databse Server specified is accepted ?Thanks for the reply.
I can connect via ODBC to the the 32 bit SQL Server and the 64 bit SQL Server from the SCCM Server
The SQL Server Unit called SQL3 unit is a 64 bit SQL.
The SQL Server Unit called SQL is only 32 bit, but at least gets past the final checking stage and the error messages about sysadmin rights and Site System to SQL Server communication problem, and then fails with PKI certificate error message.
When trying to install SCCM specifying the 64 bit SQL Server as the Database Server it gives the 2 error messages at the final checking stage of the installation as listed.
So as I said what is confusing is the fact that if the SCCM install uses the remote 32 bit SQL Server it passes the final checking (although fails with PKI certificate message) but the 64 bit SQL Server set up exactly the same apart from the Firewall being
left off for the time being, fails at the final check stage with the 2 listed errors.
If I use a local 64 bit SQL Server the installation is fine.
Still would like to find out what cause the 2 issues for the remote 64 bit SQL Server, when ODBC seems fine, sysadmin rights have been given for the installer account and the SCCM computer account and SPNs have been set for the user account running the SQL
Services. -
Thanks to those that responded to my previous E-Mail on how to get the
Forte project & class generated. This worked great!! I'm able to start
Word and create documents, etc.Thanks!
Now I'm having a problem calling an OLE method that were generated. I
have a project called Word and a class called Application of type
CDispatch. The Application class has a method called "Insert" on it. I
want to be able to start a Word document and then insert some text into
it from Forte. When I try to call this method I get the following error:
SYSTEM ERROR: Error during Invoke; status code:
-2147352565(0x8002000B)
Class: OLEException
Last TOOL statement: method CDispatch.Invoke
Error Time: Wed Mar 12 15:55:09
Exception occurred (locally) on partition "Forte_cl0_Client",
(partitionId = 6C32C516-7616-11D0-B5DD-EE36DFEAAA77:0x8ff:0x1,
taskId
= [6C32C516-7616-11D0-B5DD-EE36DFEAAA77:0x8ff:0x1.4]) in
application
"Forte_cl0", pid 149 on node SCURD01-1 in environment
CentralEnv.
Here's my code:
tWordApplication : Word.Application = new();
when <wNewDocumentButton>.click do
<YourDocument>.CreateEmbeddedObjectFromProgId(
cacheFile = tCacheFileName,
progId = 'Word.Document');
tWordApplication.ObjectReference = <YourDocument>.OleObjectReference;
tWordApplication.Insert( 'This is a test' ); <==== this is the line
getting the error
Since I've never worked with OLE & am not that familiar with how it
works, any suggestions/comments are greatly appreciated.
Doug Scurr
Senior Technologist - Application Development
Piper Jaffray Companies
612-342-1748
[email protected]
Thanks,
DougI'm afraid we have to make it work for NT, 95 and probably 98 too, so we're
looking for something a bit more robust than the environment variable.
Thanks,
Tim Sawyer
PanCredit
Leeds, UK.
From: Daniel Nguyen[SMTP:[email protected]]
Reply To: [email protected]
Sent: 07 May 1999 20:40
To: Tim Sawyer
Cc: '[email protected]'; '[email protected]'
Subject: Re: Calling Windows API from Tool
Hi,
If it's only for the UserName on NT you can get the environment variable
USERNAME.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
Url : http://perso.club-internet.fr/dnguyen/
Tim Sawyer a écrit:
Hi George,
I think you need to find out which Windows DLL implements the functionand
then wrapper it, using Forté's C Wrappering technique. I'm going to be
doing this for the GetUserName() function, so we can login to our
application automatically, using the username that the user logged intoNT
with.
Hope this helps!
Tim Sawyer
PanCredit
Leeds, UK.
From: Aberdour George <[email protected]>
Date: Thu, 6 May 1999 09:08:03 +1000
Subject: Calling Windows API from Tool
Hi,
Does anyone know how to call Windows API calls such as WinExec,
CreateProcess, RegSetValue, etc directly from TOOL ?
These are just examples calls. I know some Windows API calls can be
called
via equivalent OperatingSystem method calls, but I would really like toknow
if it is possible to call Windows API routines directly.
Thanks in advance,
George Aberdour
TAFE NSW-
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
I would like to Call Labview application (as Active X Server) from Visual C++. I need any type of exemple on how to do this, any input will be greatly apriciated.
In the summer there has been an example in the Developer Zone, but i can't find it again. I can send you the attached zipfile from that example. The example is resricted to single threaded applications. In multi threaded applications you must initialise OLE in the thread where you communicate with the active-X server.
If you need more information contact me at [email protected]
Waldemar
Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions
Attachments:
VCandLabVIEW.zip 91 KB -
To: [email protected]
cc:
Subject: Calling COBOL from Forte
We have a large complex COBOL program that we've purchased that we
currently run on our mainframe system. We are in the process of re-writing
our system into FORTE but we want to keep this COBOL program. This COBOL
program would need to be called from FORTE and it in turn would need to
call FORTE methods. The interface between FORTE and COBOL would be done by
passing large data structures as parameters containing both Character and
Integer data fields. Can this be done since I'm not looking forward to
having to re-write this entire program in FORTE?
David Wilbur email: [email protected]
University of Windsor phone: 519-253-4232 ext. 2779
Windsor, Ontario Canada
-----------------------------------------------Another alternative is to use the ExternalConnection class (in the
Framework project).
This would entail developing a "COBOL Function Server" on the mainframe to
"serve" the COBOL functions. I don't know if you can use COBOL for that,
but you should be able to use C, or PERL, or some other scripting language
that you can code a simple socket listener with on the mainframe.
This server would listen for requests to execute a COBOL function at a
designated port, call the COBOL function, and return its results via the
socket. On the Forte side you would use ExternalConnection to connect to,
send requests, and receive responses from the COBOL server. You can also
have a Forte server listen in on another port for requests from the COBOL
program and "serve" it Forte functions.
You would, in essence, be developing a COBOL/Forte gateway.
You would need to think about a simple application protocol to make the
requests/responses work. Something based on paramter=value pairs should
work well, is simple to code for, and simple to synchronize. For example :
request=get_employee_data
employee_no = 12345
<end_of_request>
request=produce_payroll_report
report_no=1705
format_no=1001
output_to=xyz
<end_of_request>
ExternalConnection class is a great way to create general Forte interfaces
to external systems. It does require some setting up, but is is worth the
effort.
Hope this helps.
-Nabil
At 03:21 PM 2/6/97 PST, Digital/Forte 06-Feb-1997 1512 wrote:
The only way I am aware of calling COBOL programs from Forte is through
C-wrappering since Forte does not provide a direct interface to COBOL.
This has been done on various platforms but with complex data structures
this can be turn out to be messy.
There are a lot of other middleware supported by Forte like
ObjectBroker&DCE but COBOL is not supported directly by these productseither.
>
I am not aware of what kind of processing your COBOL and Forte apps
do (interactive/batch) or what databases (if any) are involved,but it may be
easier for both to interact with a common database if it is feasible.
Does anyone else have better ideas?
- Arvind
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arvind Kumar Krishnaswamy
Digital/Forte Software Products Group
Digital Equipment Corporation ______________________
1800,Harrison Street,Suite 1700, | | | | | | | |
Oakland.CA 94612 USA |d |i |g |i |t |a |l |
| | | | | | | |
Tel : 510-251-6537 ----------------------
Fax : 510-251-6531
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
==================================================
Nabil Hijazi Optimum Solutions, Inc.
[email protected] 11654 Plaza America Drive
Phone: (703) 435-3530 #501
Fax: (703) 435-9212 Reston, Va 20190
-------------------------------------------------- -
Re: Calling Actuate from Forte
Tanya,
Actuate supplies C-API's to both their report viewer and the report server.
There is also an ActiveX control version of the report viewer that you can
embed with Forte 3. There is example wrapper code lying around somewhere,
look on the Forte Shareware site.
Regards
Richard Stobart
Consultant, ECSoft, UK
101 Wigmore Street
London W1H 9AA
(0171) 355 1101
-----Original Message-----
From: Tanya Scott <[email protected]>
To: [email protected] <[email protected]>
Date: 16 June 1998 17:37
Subject: Calling Actuate from Forte
For those using Actuate with Forte.
What is the best way to call Actuate reports from Forte? Is it difficult?
Exactly how is it done?
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>-
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>Tanya,
Actuate supplies C-API's to both their report viewer and the report server.
There is also an ActiveX control version of the report viewer that you can
embed with Forte 3. There is example wrapper code lying around somewhere,
look on the Forte Shareware site.
Regards
Richard Stobart
Consultant, ECSoft, UK
101 Wigmore Street
London W1H 9AA
(0171) 355 1101
-----Original Message-----
From: Tanya Scott <[email protected]>
To: [email protected] <[email protected]>
Date: 16 June 1998 17:37
Subject: Calling Actuate from Forte
For those using Actuate with Forte.
What is the best way to call Actuate reports from Forte? Is it difficult?
Exactly how is it done?
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>-
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
Query 32 bit Access Database from 64 bit Sql Server
Hi All,
I have a task to query the Accessdb from Sql Server and below are the configuration details:
OS: Windows Server 2008 R2 Enterprise( 64 bit)
Sql Server: Sql Server 2012 enterprise (64 Bit)
Access : MS Office 2010 (32 bit)
I used the below queries to reap the data from access db.
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','D:\Product.accdb', Product) AS Product
(or)
SELECT * FROM OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','D:\PRODUCT.ACCDB', PRODUCT) AS PRODUCT
following error returnd from both queries.
Error: "Msg 7438, Level 16, State 1, Line 2. The
32-bit OLE DB provider "Microsoft.Jet.OLEDB.4.0" cannot be loaded in-process on a 64-bit SQL Server."
Please help.
Ram MSBI Developernot sure if anyone is watching this thread anymore but i have this scenario. i am using the excel connection manager in SSIS to create an excel spreadsheet with VS 2012. To do this from what I have read I am required to use the 32-bit driver for "Microsoft
Access database engine 2007", if I use the 64-bit driver I cannot connect to the Excel connection manager. i get 0xc020801c message.
i can install the 32-bit "Microsoft Access database engine 2007" and resolve this problem. but i also have a stored procedure that creates a spreadsheet (i use this because i have to leave some cells intact), it appears to require the
64-bit "Microsoft Access database engine 2007". in 32-bit mode i get the following message
Msg 7438, Level 16, State 1, Procedure sp_CreateGRfile, Line 26
The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server.
so i need both the 32-bit "Microsoft Access database engine 2007" and 64-bit "Microsoft Access database engine 2007".
any thoughts on getting around this issue? -
For those using Actuate with Forte.
What is the best way to call Actuate reports from Forte? Is it difficult?
Exactly how is it done?
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>Tanya,
Please send any responses to [email protected].
I am currently working on an Invoicing project for Williams Conferencing in Denver, CO. We are using Actuate to generate invoices, in conjunction with an Invoicing application developed in Forte.
You have many options.
As far as integrating with Actuate, you can use their Actuate ActiveX controls, Requestor API or their Report Server API. You can read about the pros and cons of these methods in the "About the APIs" section of the "Actuate Application Programming Interfaces Guide" on page xxxi.
Using the Report Server API gives you more control than using the Requestor API. For example, we are currently unaware of a way of preventing versions of a report from being created when a report is regenerated, using the Requestor API. This can easily be accomplished using the Report Server API. But, the Report Server API is more difficult to use.
I am not familiar enough with ActiveX to comment on the ease and viability of using ActiveX to integrate Forte with Actuate.
Our approach is to create a C DLL using MS Visual C++ and integrate it with Forte. Our C DLL contains high level functions, such as GenerateInvoice(...) and PrintInvoice(...). Our high level functions contain calls to the Actuate Requestor API. Now that our C function are integrated with Forte, we are able to call them directly from our Forte application TOOL code.
For information on integrating C with Forte, read chapter 2 of the Forte book entitled "Integrating with External Systems". I have attached a document I wrote that enumerates the steps to integrate C with Forte.
The method we use to integrate Forte with Actuate is time consuming and tedious. If anyone knows of a better method, please let me know.
Kind Regards,
---Tanya Scott <[email protected]> wrote:
>
For those using Actuate with Forte.
What is the best way to call Actuate reports from Forte? Is it difficult?
Exactly how is it done?
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
==
Henry "Hank" C. Bissell
Denver, CO USA
[email protected]
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com -
Calling an C++ Orbix server from an ejb
We have some C++ existing Orbix servers that we wish to call from an ejb. We are not using
Orbixweb. I ran the idl through Sun's idltojava. I was able to interface nicely from a stand-alone
Java client. I then put an ejb wrapper around the client stub. The first time I try to invoke a method,
I get the following exception:
org.omg.CORBA.BAD_OPERATION: The delegate has not been set! minor code: 0 completed: No
at org.omg.CORBA.portable.ObjectImpl._get_delegate(ObjectImpl.java:43)
at org.omg.CORBA.portable.ObjectImpl._request(ObjectImpl.java:92)
at com.manu.demo.any._AnyDemoStub.passSomethingIn(_AnyDemoStub.java:28)
at AnyDemoMenu.doSendChar(AnyDemoMenu.java:237)
at AnyDemoMenu.start(AnyDemoMenu.java, Compiled Code)
at AnyDemoEjbClient.main(AnyDemoEjbClient.java:26)
Any suggestions?To answer your specific questions:
You asked two questions:
1. If you want to talk to Orbix, why are you trying to bring up the jdk orb?
Answer: We are using Orbix for the C++ server objects. We do NOT use OrbixWeb, Iona'a Java ORB.
We wanted to see if we could get it working just using the JDK ORB. So we have two Orbs talking to
each other. Even if we used OrbixWeb, we would still be using two orbs, although from the same
vendor.
2. Why are you trying to write a CORBA object into an RMI stream?
Answer. Well, I'm not. You are, or rather wls is. I'll review what I did. I have a C++ object defined in
IDL as a "Bank" interface. It is hosted by Orbix. We wanted to be able to reach the server from an EJB.
Running Bank through idlj produces java interfaces Bank and java classes BankHolder, BankHelper,
and BankStub. The client does not invoke methods on BankStub directly. All of these are in a
package I call BankServer. Any java client can use these to communicate with the C++ server object.
I defined an EJB with remote interface IBank, home interface IBankHome, and implementation object
BankBean. These are in package Bank. In the BankBean, I have this code (try-catch stuff ommitted):
package com.manu.demo.Bank;
import com.manu.demo.BankServer.*;
public class BankBean implements SessionBean {
private static Bank bank = null; // in BankServer
public void ejbCreate() throws CreateException {
String filename = "";
InitialContext ic = new InitialContext();
if (bank == null) {
// get file name - defined in deployment descriptor
filename = (String) ic.lookup("java:/comp/env/iorFileName");
// Read the stringified object reference from file.
BufferedReader reader = new BufferedReader
(new InputStreamReader(new FileInputStream(filename)));
String ior = reader.readLine();
reader.close();
// create and initialize the ORB
ORB orb = ORB.init((String[])null, null);
// Create object from stream
bank = BankHelper.narrow(orb.string_to_object(ior));
I now have the Bank (corba) object reference. Other methods in BankBean delegate requests to the
corba Bank. I NEVER invoke the BankStub.objectto_string method with the bad ORB.init() call. Nor
is it called by any of the other methods in the generated BankServer package. Look again at the stack
trace:
java.lang.SecurityException: ORBSingleton: access denied
at com.sun.corba.se.internal.corba.ORBSingleton.object_to_string
at com.manu.demo.BankServer._BankStub.writeObject
at java.lang.reflect.Method.invoke
at java.io.ObjectOutputStream.invokeObjectWriter
at java.io.ObjectOutputStream.outputObject
at java.io.ObjectOutputStream.writeObject
at weblogic.common.internal.WLObjectOutputStreamBase.writeObject
at weblogic.common.internal.WLObjectOutputStreamBase.writeSpecial
at weblogic.common.internal.WLObjectOutputStreamBase.writeObject
at weblogic.common.internal.WLObjectOutputStreamBase.writeObjectWL
at weblogic.rmi.extensions.AbstractOutputStream2.writeObject
at com.manu.demo.Bank.BankBeanEOImpl_WLSkel.invoke
at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke
at weblogic.rmi.extensions.BasicRequestHandler.handleRequest
at weblogic.rmi.internal.BasicExecuteRequest.execute
at weblogic.kernel.ExecuteThread.run
And you say you're confused? Since I can look at neither the WebLogic source code nor the wls
generated BankBeanEOImpl_WLSkel, I have no idea what is happening and why. All I can tell you
is that _BankStub.writeObject is not invoked when I use a Java client that is not in a wls ejb.
At any rate, the story has a happy ending. I changed a couple of lines of the generated _BankStub
code and everything works fine now. I notified Sun of the bug.
See http://developer.java.sun.com/developer/bugParade/bugs/4379317.html
Tahnks for your help.
>
The problem is in the code that the idlj compiler generates. Here is the
_BankStub.writeObject method. (generated code)
private void writeObject (java.io.ObjectOutputStream s)
try
String str = org.omg.CORBA.ORB.init ().object_to_string (this);
s.writeUTF (str);
} catch (java.io.IOException e) {}
Now, I'm even more confused. Why are you trying to write a CORBA object into an RMI stream?
>
The call to ORB.init() returns, by default, an instance of
com.sun.corba.se.internal.corba.ORBSingleton
Here is the code for
com.sun.corba.se.internal.corba.ORBSingleton.object_to_string
public String object_to_string(org.omg.CORBA.Object obj) {
throw new SecurityException("ORBSingleton: access denied");
This problem does not occur from a regular Java client to the
Corba object. This is undoubtedly due to the fact that the
writeObject method is called from wls, but not from my other
client.
I will report this problem to Sun. Even though this is not a
problem with wls per se, do you have any ideas as to work-arounds?
Maybe there are different ORB classes I can use.
The ORBSingleton is the Any factory, not the functioning orb. I don't really understand why there are two properties, but I expect what you want it to find out what IONA recommends for such a configuration.
>
Thanks a lot for your help.
Eduardo Ceballos <[email protected]> wrote:
Two observations:
1) Let's establish that it works first and develop narrower constraints later. I suggest you try putting a totally permissive java.policy file:
grant {
// Allow everything for now
permission java.security.AllPermission;
2) Why do you set both weblogic.system.disableWeblogicClassPath and weblogic.class.path? You will probably have to set the classpath to
%JAVA_CLASSPATH%;%WEBLOGIC_CLASSPATH% to get the effect you want.
Doug Parker wrote:
OK, I upgraded to JDK 1.3. Now I have a differnet problem. Let me be specific about what I am doing.
I have an Orbix C++ server Object (Bank). I am trying to invoke it from an EJB. I do not use
OrbixWeb, just the JDK orb, Java IDL. So the ejb is a client of orbix. The ejb itself is invoked by a
Java client,which locates the bean through located through normal JNDI methods.
I call my ejb remote, home, and implementation classes IBank, IBankHome,
and BankBean. I generated the Bank package with idlj. The Orbix Bank object writes out a
reference to itself using oject_to_string and writes it to a file. The BankBean.ejbCreate method
reads the file and reconstitutes the Java version of the Bank object by calling
ORB.string_to_object and the narrowing it. Other methods in the BankBean delegeate to
their corresponding corba Bank methods.
I invoke Weblogic with the following script:
set JAVA_CLASSPATH=.\lib\weblogic510sp5boot.jar;.\classes\boot
set JAVA_CLASSPATH=%JAVA_CLASSPATH%;.\eval\cloudscape\lib\cloudscape.jar;
set JAVA_CLASSPATH=%JAVA_CLASSPATH%;d:\classpath;
set WEBLOGIC_CLASSPATH=.\lib\weblogic510sp5.jar;.\license;.\classes;.\lib\weblogicaux.jar
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\weblogic\myserver\com_manu_demo_anybean.jar
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\weblogic\myserver\com_manu_demo_bank.jar
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\weblogic\myserver\serverclasses
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\classpath;
java -ms64m -mx64m
-Dweblogic.system.disableWeblogicClassPath=true
-classpath %JAVA_CLASSPATH%
-Dweblogic.class.path=%WEBLOGIC_CLASSPATH%
-Dweblogic.home=.
-Djava.security.manager
-Djava.security.policy=.\weblogic.policy
-Dorg.omg.CORBA.ORBClass=com.sun.corba.se.internal.iiop.ORB
-Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.se.internal.corba.ORBSingleton
-Djavax.rmi.CORBA.UtilClass=com.sun.corba.se.internal.javax.rmi.CORBA.Util
-Djavax.rmi.CORBA.PortableRemoteObjectClass=com.sun.corba.se.internal.javax.rmi.PortableRemoteObject
weblogic.Server
(Line breaks added for readability). D:\classpath is the location of my stuff.
I don't think the inclusion of the ORBClass and ORBSingleton class really has any effect here,
since I am using the defaults.
Now I get this:
java.lang.SecurityException: ORBSingleton: access denied
at weblogic.rmi.extensions.AbstractRequest.sendReceive(AbstractRequest.java:76)
at com.manu.demo.Bank.BankBeanEOImpl_WLStub.getBank(BankBeanEOImpl_WLStub.java:336)
at com.manu.demo.Bank.BankBeanEOImpl_ServiceStub.getBank(BankBeanEOImpl_ServiceStub.java:223)
at BankEjbClient.main(BankEjbClient.java:22)
I suspect that I need to add something to the Weblogic policy file. Do you concur? If so, what do
I need to do? Here is my current file (with comments removed)
// WEBLOGIC POLICY FILE
grant codeBase "file:d:/weblogic/-" {
permission java.io.FilePermission "d:${/}weblogic${/}-", "read,write,delete,execute";
permission java.net.SocketPermission "localhost:1-9000", "connect,accept,listen,resolve";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.io.SerializablePermission "enableSubclassImplementation";
permission java.io.SerializablePermission "enableSubstitution";
permission java.lang.RuntimePermission "accessClassInPackage.*";
permission java.lang.RuntimePermission "accessDeclaredMembers.*";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "createSecurityManager";
permission
Eduardo Ceballos <[email protected]> wrote:
Comments in line...
Doug Parker wrote:
I put in the all permissions file. That did not help. I also fixed the problem
in my startup script. The script is now ( with line feed added for readability):
set JAVA_CLASSPATH=.\lib\weblogic510sp5boot.jar;
.\classes\boot;
.\eval\cloudscape\lib\cloudscape.jar;
set WEBLOGIC_CLASSPATH=.\lib\weblogic510sp5.jar;
.\license;
.\classes;
.\lib\weblogicaux.jar;
d:\weblogic\myserver\serverclasses;
d:\weblogic\myserver\com_manu_demo_anybean.jar;
d:\weblogic\myserver\com_manu_demo_bank.jar;
d:\classpath;
java -ms64m -mx64m
-classpath %JAVA_CLASSPATH%
-Dweblogic.class.path=%WEBLOGIC_CLASSPATH%
-Dweblogic.home=.
-Djava.security.manager
-Djava.security.policy=.\weblogic.policy
-Dorg.omg.CORBA.ORBClass=com.sun.corba.se.internal.iiop.ORB
-Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.se.internal.corba.ORBSingleton
-Djavax.rmi.CORBA.UtilClass=com.sun.corba.se.internal.javax.rmi.CORBA.Util
-Djavax.rmi.CORBA.PortableRemoteObjectClass=
com.sun.corba.se.internal.javax.rmi.PortableRemoteObject
weblogic.Server
I'm still a bit of a wl newbie. Does this look right?This is right if you want to use hot deployment in WLS 5.x. I would recommend doing the opposite, namely put the ejb jar and WEBLOGIC_CLASSPATH in the java classpath.
I notice that when Web logic comes up,
I get this message, (among many others, of course)
Thu Oct 12 20:28:05 EDT 2000:<I> <WebLogicServer> Warning: using javax.rmi.CORBA
UtilClass [com.sun.corba.se.internal.javax.rmi.CORBA.Util]; WLS IIOP subsystem
requires a WLS compatible UtilClass.
Thu Oct 12 20:28:05 EDT 2000:<I> <WebLogicServer> Warning: using javax.rmi.CORBA
PortableRemoteObjectClass [com.sun.corba.se.internal.javax.rmi.CORBA.Util]; WLS
IIOP subsystem requires a WLS compatible PortableRemoteObjectClass.
Could this be a problem????????????I think this is ok. As I understand it, you want to subvert the the RMI-IIOp implementation in WLS. These messages reflect, albeit with verbiage that sounds a bit stern.
Properties print out later as :
Thu Oct 12 20:28:10 EDT 2000:<I> <System Props> javax.rmi.CORBA.PortableRemoteOb
jectClass = com.sun.corba.se.internal.javax.rmi.PortableRemoteObject
Thu Oct 12 20:28:10 EDT 2000:<I> <System Props> javax.rmi.CORBA.UtilClass = com.
sun.corba.se.internal.javax.rmi.CORBA.Util
Thu Oct 12 20:28:10 EDT 2000:<I> <System Props> line.separator =
Thu Oct 12 20:28:10 EDT 2000:<I> <System Props> org.omg.CORBA.ORBClass = com.sun
corba.se.internal.iiop.ORB
Thu Oct 12 20:28:10 EDT 2000:<I> <System Props> org.omg.CORBA.ORBSingletonClass
= com.sun.corba.se.internal.corba.ORBSingleton
Here is the exception as wls prints it out:
0.1 to licensed client list
Thu Oct 12 19:01:25 EDT 2000:<I> <ServletContext-General> classes: init
Thu Oct 12 19:01:26 EDT 2000:<E> <Adapter> Exception thrown by rmi server: [-445
9296610842235498S172.16.30.174:[7001,7001,7002,7002,7001,-1]/260]
java.lang.SecurityException: ORBSingleton: access denied
at com.sun.corba.se.internal.corba.ORBSingleton.object_to_string(ORBSing
leton.java:300)
at com.manu.demo.BankServer._BankStub.writeObject(_BankStub.java:119)
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStream.java
:1878)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1210)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjec
tOutputStreamBase.java:118)
at weblogic.common.internal.WLObjectOutputStreamBase.writeSpecial(WLObje
ctOutputStreamBase.java:771)
at weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjec
tOutputStreamBase.java:1007)
at weblogic.common.internal.WLObjectOutputStreamBase.writeObjectWL(WLObj
ectOutputStreamBase.java:166)
at weblogic.rmi.extensions.AbstractOutputStream2.writeObject(AbstractOut
putStream2.java:82)
at com.manu.demo.Bank.BankBeanEOImpl_WLSkel.invoke(BankBeanEOImpl_WLSkel
java:125)
at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerOb
jectAdapter.java:347)
at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicReques
tHandler.java:69)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
java:15)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:135)
I'm confused.. if you want to talk to Orbix, why are you trying to bring up the jdk orb?
The problem is in the code that the idlj compiler generates. Here is the
_BankStub.writeObject method. (generated code)
private void writeObject (java.io.ObjectOutputStream s)
try
String str = org.omg.CORBA.ORB.init ().object_to_string (this);
s.writeUTF (str);
} catch (java.io.IOException e) {}
Now, I'm even more confused. Why are you trying to write a CORBA object into an RMI stream?
The call to ORB.init() returns, by default, an instance of
com.sun.corba.se.internal.corba.ORBSingleton
Here is the code for
com.sun.corba.se.internal.corba.ORBSingleton.object_to_string
public String object_to_string(org.omg.CORBA.Object obj) {
throw new SecurityException("ORBSingleton: access denied");
This problem does not occur from a regular Java client to the
Corba object. This is undoubtedly due to the fact that the
writeObject method is called from wls, but not from my other
client.
I will report this problem to Sun. Even though this is not a
problem with wls per se, do you have any ideas as to work-arounds?
Maybe there are different ORB classes I can use.
The ORBSingleton is the Any factory, not the functioning orb. I don't really understand why there are two properties, but I expect what you want it to find out what IONA recommends for such a configuration.
Thanks a lot for your help.
Eduardo Ceballos <[email protected]> wrote:
Two observations:
1) Let's establish that it works first and develop narrower constraints later. I suggest you try putting a totally permissive java.policy file:
grant {
// Allow everything for now
permission java.security.AllPermission;
2) Why do you set both weblogic.system.disableWeblogicClassPath and weblogic.class.path? You will probably have to set the classpath to
%JAVA_CLASSPATH%;%WEBLOGIC_CLASSPATH% to get the effect you want.
Doug Parker wrote:
OK, I upgraded to JDK 1.3. Now I have a differnet problem. Let me be specific about what I am doing.
I have an Orbix C++ server Object (Bank). I am trying to invoke it from an EJB. I do not use
OrbixWeb, just the JDK orb, Java IDL. So the ejb is a client of orbix. The ejb itself is invoked by a
Java client,which locates the bean through located through normal JNDI methods.
I call my ejb remote, home, and implementation classes IBank, IBankHome,
and BankBean. I generated the Bank package with idlj. The Orbix Bank object writes out a
reference to itself using oject_to_string and writes it to a file. The BankBean.ejbCreate method
reads the file and reconstitutes the Java version of the Bank object by calling
ORB.string_to_object and the narrowing it. Other methods in the BankBean delegeate to
their corresponding corba Bank methods.
I invoke Weblogic with the following script:
set JAVA_CLASSPATH=.\lib\weblogic510sp5boot.jar;.\classes\boot
set JAVA_CLASSPATH=%JAVA_CLASSPATH%;.\eval\cloudscape\lib\cloudscape.jar;
set JAVA_CLASSPATH=%JAVA_CLASSPATH%;d:\classpath;
set WEBLOGIC_CLASSPATH=.\lib\weblogic510sp5.jar;.\license;.\classes;.\lib\weblogicaux.jar
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\weblogic\myserver\com_manu_demo_anybean.jar
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\weblogic\myserver\com_manu_demo_bank.jar
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\weblogic\myserver\serverclasses
set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;d:\classpath;
java -ms64m -mx64m
-Dweblogic.system.disableWeblogicClassPath=true
-classpath %JAVA_CLASSPATH%
-Dweblogic.class.path=%WEBLOGIC_CLASSPATH%
-Dweblogic.home=.
-Djava.security.manager
-Djava.security.policy=.\weblogic.policy
-Dorg.omg.CORBA.ORBClass=com.sun.corba.se.internal.iiop.ORB
-Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.se.internal.corba.ORBSingleton
-Djavax.rmi.CORBA.UtilClass=com.sun.corba.se.internal.javax.rmi.CORBA.Util
-Djavax.rmi.CORBA.PortableRemoteObjectClass=com.sun.corba.se.internal.javax.rmi.PortableRemoteObject
weblogic.Server
(Line breaks added for readability). D:\classpath is the location of my stuff.
I don't think the inclusion of the ORBClass and ORBSingleton class really has any effect here,
since I am using the defaults.
Now I get this:
java.lang.SecurityException: ORBSingleton: access denied
at weblogic.rmi.extensions.AbstractRequest.sendReceive(AbstractRequest.java:76)
at com.manu.demo.Bank.BankBeanEOImpl_WLStub.getBank(BankBeanEOImpl_WLStub.java:336)
at com.manu.demo.Bank.BankBeanEOImpl_ServiceStub.getBank(BankBeanEOImpl_ServiceStub.java:223)
at BankEjbClient.main(BankEjbClient.java:22)
I suspect that I need to add something to the Weblogic policy file. Do you concur? If so, what do
I need to do? Here is my current file (with comments removed)
// WEBLOGIC POLICY FILE
grant codeBase "file:d:/weblogic/-" {
permission java.io.FilePermission "d:${/}weblogic${/}-", "read,write,delete,execute";
permission java.net.SocketPermission "localhost:1-9000", "connect,accept,listen,resolve";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.io.SerializablePermission "enableSubclassImplementation";
permission java.io.SerializablePermission "enableSubstitution";
permission java.lang.RuntimePermission "accessClassInPackage.*";
permission java.lang.RuntimePermission "accessDeclaredMembers.*";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "createSecurityManager";
permission java.lang.RuntimePermission "defineClassInPackage.*";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "getProtectionDomain";
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "readFileDescriptor";
permission java.lang.RuntimePermission "setContextClassLoader";
permission java.lang.RuntimePermission "setFactory";
permission java.lang.RuntimePermission "setIO";
permission java.lang.RuntimePermission "setProtectionDomain";
permission java.lang.RuntimePermission "setSecurityManager";
permission java.lang.RuntimePermission "writeFileDescriptor";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.net.NetPermission "requestPasswordAuthentication";
permission java.net.NetPermission "setDefaultAuthenticator";
permission java.security.SecurityPermission "getPolicy";
permission java.security.SecurityPermission "setPolicy";
permission java.util.PropertyPermission "*", "read,write";
grant codeBase "file:/c:/classes/-" {
permission java.io.FilePermission "c:${/}classes${/}-", "read,write,delete,execute";
permission java.net.SocketPermission "localhost:1-9000", "connect,accept,listen,resolve";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.io.SerializablePermission "enableSubclassImplementation";
permission java.io.SerializablePermission "enableSubstitution";
permission java.lang.RuntimePermission "accessClassInPackage.*";
permission java.lang.RuntimePermission "accessDeclaredMembers.*";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "createSecurityManager";
permission java.lang.RuntimePermission "defineClassInPackage.*";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "getProtectionDomain";
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "readFileDescriptor";
permission java.lang.RuntimePermission "setContextClassLoader";
permission java.lang.RuntimePermission "setFactory";
permission java.lang.RuntimePermission "setIO";
permission java.lang.RuntimePermission "setProtectionDomain";
permission java.lang.RuntimePermission "setSecurityManager";
permission java.lang.RuntimePermission "writeFileDescriptor";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.net.NetPermission "requestPasswordAuthentication";
permission java.net.NetPermission "setDefaultAuthenticator";
permission java.security.SecurityPermission "getPolicy";
permission java.security.SecurityPermission "setPolicy";
permission java.util.PropertyPermission "*", "read,write";
grant codeBase "file:${java.home}/lib/ext/-" {
permission java.security.AllPermission;
grant {
// Permission "enableSubstitution" needed to run the WebLogic console
permission java.io.SerializablePermission "enableSubstitution";
// Permission "modifyThreadGroup" required to run the WebLogic Server
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "setContextClassLoader";
// Permission "setIO" needed to start a server from the WebLogic console
permission java.lang.RuntimePermission "setIO";
// Permission "getClassLoader" needed for many EJB clients
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "stopThread";
permission java.net.SocketPermission "localhost:1024-", "listen";
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
OK, I hope you have all the info you need. Thanks a lot for your help!
Maybe you are looking for
-
Mail problems - contacts "hacked"
Hi, Forgive my ignorance, however, I have had a brief scan through these pages and several people appear to be having almost the same problem as I am, but not quite. I have an iphone 4 on iOS5.1, an ipad on iOS5.1.1, and a MacBook Pro, on OSX10.6.8.
-
"Quicktime has stopped working"
My problem began about two weeks ago when I tried to open iTunes, and it said "iTunes has stopped working." I uninstalled iTunes, and tried to reinstall it but there was an error with QuickTime. Now, when I try to open QuickTime it says "Quicktime ha
-
OS X M.L does not appear to be downloading
I recently purchased OS X Mountain Lion on my MacBook Pro and it says that it is downloading, however it appears to be stuck on the same amount of downloaded data for a lifetime!! I have tried cancelling, turning off etc and retrying but it doesn't s
-
Video chats not working?
i know a lot of people have been on here asking why their chats aren't working so im sorry for reposting the topic, but i couldn't find one that was doing the same thing mine was. i have my firewall turned off, no bandwith selected, quicktime selecte
-
Terminfo question: how do I print text in RED
Hi. Really basic question here, but I've spent hours trying to solve it. I have a Terminal application. I want to make some text appear as RED. I do not want to hard-code the escape characters, I want to do it with terminfo. I've read through the doc