Forte/CORBA/VC++ Question
Hi Everybody,
Does any one worked on a C++ application communicating with a Forte Service
Object via Visibroker. Problem we are facing is we could't able to call a
Service Object Method which is returning a Array of Objects. Forte
generating the IDL for the function but when we tried to access the function
from the C++ client causing CORBA::UNKOWN exception.
thanks in advance..
[email protected]
Get Your Private, Free Email at http://www.hotmail.com
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
Hi, Srinivas
I do have "a C++ application communicating with a Forte Service Object via
Visibroker", and also my remote method of the service object is returning an
Array of Object (to be exact, a subclass of Object). It is hard to figure out
what happened just from the information you provided here. If you could provide
more information, it might be helpful.
CORBA::UNKOWN exception: The explanation is The ORB could not determine the
thrown exception. The server throws something other than a correct exception
such as Windows runtime exception.
By default, when Forte generates an IDL method, it raises an exception either
GenericException or UserException. You can subclass GenericException or
UserException to add custom exception classes.
Shilong Yin
US West in Denver
Srinivas Delu wrote:
Hi Everybody,
Does any one worked on a C++ application communicating with a Forte Service
Object via Visibroker. Problem we are facing is we could't able to call a
Service Object Method which is returning a Array of Objects. Forte
generating the IDL for the function but when we tried to access the function
from the C++ client causing CORBA::UNKOWN exception.
thanks in advance..
[email protected]
Get Your Private, Free Email at http://www.hotmail.com
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/>
Similar Messages
-
RE: Forte/CORBA inquiry - Long post
Dave,
Are you using any kind of structured object in the parameters to your
CORBA-exposed method?
We have found that Forté will change the order of struct class attributes
when changes are made in the IDE (often even when seemingly unrelated).
Look at the IDL generated in your last deploy to be sure the order of
attributes is the same.
- MikeL
-----Original Message-----
Date: Thu, 3 Aug 2000 12:10:17 -0700
From: "Dave Ortman" <dortmanrcsis.com>
To: kamranaminyahoo.com
Subject: Forte/CORBA inquiry - Long post
Message-id: <3989c399.22c.0rcsis.com>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Hello,
I've been experimenting with accessing Forte through Java via CORBA. While
I have adequate experience with Forte and Java, I'm fairly new to CORBA. As
a result, I've discovered some issues which I can't seem to resolve.
I fear my explanation might be a bit lengthy, but I figure it's easier to
offer
comments when you have all the information. I apologize in advance.
I started by writing a Java application that would access a Forte service
object.
To keep things simple, I didn't use any of our existing code base. I
instead
used the code examples in tech note #10950: Forte Service Objects and
VisiBroker
Java IIOP clients. However, instead of using the VisiBroker ORB, I used the
Java 1.2 ORB. Other than that, I used the same code offered in the tech
note.
This example worked fine. I exported the IDL from Forte, ran the Sun
idltojava
tool, and compiled my Java classes.
I then tried to carry this example forward, and use some of our existing
Forte
objects. Things did not go as smoothly, and I am now left with a few
questions.
I created two new projects in my workspace - CorbaSO and CorbaManager.
In the CorbaManager I created a single class - CustomerManager. This object
has one method which retrieves a customer object based upon a CustomerID
which
is passed into the method. This project has three supplier plans which are
needed to retrieve this Customer object.
In the CorbaSO project, I created two classes - CorbaServer and TestClass.
CorbaServer has two methods: getCustomer and GetDamage. The getCustomer
method
instantiates an instance of the CustomerManager class, and uses it to
retrieve
a customer based upon the CustomerID passed into the getCustomer method,
then
returns the CustomerName (string). The GetDamage method is the same method
that's used in tech note #10950 (discussed above). I just wanted to make
sure
it still worked. I then made a Service Object from the CorbaServer class,
which
I called CorabaServerSO. This project has two supplier plans - the
CorbaManager
project discussed above, and the plan which contains the CustomerObject
(which
is returned by the CUstomerManager class).
Lastly, the test class simply contains a go() method, which I used to make
sure
the CorbaServerSO was working fine. All it does is call
CorbaServerSO.getCustomerName()
passing in a CustomerID, and writes the returning name out the logger.
The code compiles, and it works fine when I run it from within Forte
[through
TestClass.go()]. I then deployed the app and exported the IDL.
However, when looking at the IDL, I find that Forte exported 900k of IDL.
It
exported the IDL definition of every class within the supplier plan
hierarchy.
Given that I only wanted to expose my one service object, I assumed that I
would only get IDL for that one project. Instead, I got IDL for every
object
all the way down the Supplier Plan chain. So my first question is, why do I
get IDL for everything?
To make matters worse, this 900k IDL file is littered with errors - and my
IDL
compiler chokes. I edited the IDL so that it only contained definitions for
the CorbaSO project, and ran the IDLTOJAVA tool on that edited file. That
created
the JAVA files just fine, and I then compiled them into CLASS files. So far
so good.
I then wrote a Java client to call methods on my newly published
CorbaServerSO.
I found that the GetDamage() method worked fine, while the getCustomer
method
yield the following error: 'org.omg.CORBA.UNKNOWN: minor code: 1
completed:
Maybe'. This error is offered immediately after calling the getCustomer
method
on the CORBA stub.
Curious as to why one method worked, and one didn't - I looked to the code
in
the GetDamage method. The code was as follows (all undeclared variables are
input or output variables of type double):
tmp1 : i4;
tmp1 = i4(total * 0.0775 * 100.0 + 0.5);
salesTax = double(tmp1) / 100.0;
tmp1 = i4(total * 0.15 * 100.0 + 0.5);
tips15 = double(tmp1) / 100.0;
newTotalwoTips = salesTax + total + total;
As written above, the code works. I then modified the code to the following
(all parameters were unchanged):
custManager : CustomerManager= new();
tempCustomer : Customer = custManager.fetchCustomer(12345);
tmp1 : i4;
tmp1 = i4(total * 0.0775 * 100.0 + 0.5);
salesTax = double(tmp1) / 100.0;
tmp1 = i4(total * 0.15 * 100.0 + 0.5);
tips15 = double(tmp1) / 100.0;
newTotalwoTips = salesTax + total + total;
After deploying the newly modified code, I find that the GetDamage method
now
does not work. All I did was instanstiate an object, and call a method on
it.
I never did anything with the results. Yet I get the same error:
'org.omg.CORBA.UNKNOWN:
minor code: 1 completed: Maybe'.
So my two question are:
1. Why did I get IDL for every object within the Supplier Plan tree when I
was
only attempting to expose 1 Service Object.
2. Why does a method cease to work via CORBA when I interact with another
object?
Thanks in advance for any help,
-Dave OrtmanIn a previous post, I asked:
<<Why did I get IDL for every object within the Supplier Plan tree when I
was
only attempting to expose 1 Service Object.>>
Since writing this, I have come across tech note #11427 - which mentions use
of a IIOPIgnore extended flag which you can set on objects to suppress IDL
generation. Otherwise, Forte automatically generates IDL for any object
which is marked as Distributed.
Most of our objects are distributed. I set this property on the objects
within the two projects I was working in, and the IDL for these objects was
not created. However, the rest of the objects in the Supplier Plan chain
were still translated to IDL. Am I going to have to set this property on
every object? I don't see how I could be misapplying the property - but you
never know.
<<Why does a method cease to work via CORBA when I interact with another
object?>>
Through the use of putline()'s, I've found that the error is generated
somewhere deeper within our application architecture. It may be a problem
with our code - I'm not sure. I would still be happy to hear any input on
the matter.
Thanks,
-Dave Ortman -
Installing and Uninstalling Forte 6, newbie questions..
Hi,
I really did not want to post these questions, but I have had no luck doing this and google hasn't been much help.
First off, I have a botched install of Forte C 6U2 that needs to be uninstalled, it says to use the uninstall class in /var/sadm/prod/com.sun.forte_developer_6_2 using WebStart, but I have NO idea on how to do that.
Second, when I finally get it installed (to /usr/Forte) what commands do I need to issue in order to make everything run properly?
I feel like an idiot for posting this but my Solaris experience has thus far been limited to a shell on my ISP's mail server, and I've finally just burned out trying to do it. A million Thank You's to anyone who replies, I greatly appreciate it.This forum is for Sun Java Studio Creator product only... We'll be happy to assist you anytime if you have trouble installing or using this product. :-)
-
By using the JDBC form wizard, I generated a swing program. Along with the java code, there is a form file which looks like an xml file. My question is how to complie and run the java source code without a forte4j IDE?
ThanksOne thing is you need the jdbc in your classpath or specify at runtime. Search compiler in the forte help menu - to see options.
execution : <specify at runtime>
java -classpath:.;postgresql.org Program
-- above for postgresql driver residing in same directory as Program.class
compile : javac Progam.java or javac -classpath .;postgresql.org Progam.java
Ray -
Help with Forte: very simple question, please help!
I recently downloaded the community version of Forte (Sun One) but can't seem to get any new empty class programs to execute properly. I know something is probably not set up right, which is why I really need a little help to get started. Regardless of the code I try to execute, the output error is always:
"java.lang.NoClassDefFoundError: (name of program)
Exception in thread "main" "
Please let me know what I'm not doing right. I would really appreciate anybody's thoughts on this problem because I would love to get Forte working so I can start learning Java. Thanks for your input!I would tell you that Forte is not a tool for the beginner. you should look at something simpler. Forte is a fully integrated development environment. I would look at a simple editor like emacs, available at gnu.org. The commands of this editor are quite difficult to get use to.
As for setting the class varialbe. It depends on the O/s that you are using. win98/me is different than NT/xp. Need to know one or the other before explaining.
email me if you have question. email address is in my profile. -
Forte/Visibroker/C++ question
I am trying to have a C++ client (MSVC++ 5.0) communicate via Visibroker
(3.2) with a Forte Service Object (3.0.G.2) and have had some success.
I have successfully received a sequence (array) of TextData from Forte,
but am having problems with retrieving strings returned from a method
call which returns a sequence of objects.
Here's the scenario:
The Forte service object is called 'InfoSO' whose service object base
class is 'InfoService'. The class InfoService has a method 'getNodes'
whose return type is 'Array of Node'. Upon invoking this method, an
array consisting of one 'Node' whose attribute 'mName' is set to 'Node1'
is returned. When I try to invoke Node's 'getName()' accessor, I get
the following Visibroker exception:
Exception: CORBA::OBJECT_NOT_EXIST
Minor: 0
Completion Status: NO
I have included the Forte wex and C++ files below. In order to compile
the C++ file, I have commented out the line from the C++ header file
(corba1_c.h) generated after invoking idl2cpp as follows:
//typedef CORBA::Long int;
Has anyone had a similar situation and found a solution?
Thanks for any suggestions.
==================== Forte wex file =====================
begin TOOL CompFramework;
includes Framework;
HAS PROPERTY IsLibrary = FALSE;
-- START FORWARD CLASS DECLARATIONS
forward Node;
-- END FORWARD CLASS DECLARATIONS
-- START FORWARD CURSOR DECLARATIONS
-- END FORWARD CURSOR DECLARATIONS
-- START CONSTANT DEFINITIONS
-- END CONSTANT DEFINITIONS
-- START C DATA TYPE DEFINITIONS
-- END C DATA TYPE DEFINITIONS
-- START CLASS DEFINITIONS
class Node inherits from Framework.Object
has public attribute mName: Framework.TextData;
has public method getName: Framework.string;
has public method Init;
has public method setName(input Name: Framework.string);
has property
shared=(allow=off, override=on);
transactional=(allow=off, override=on);
monitored=(allow=off, override=on);
distributed=(allow=on, override=on, default=off);
end class;
-- END CLASS DEFINITIONS
-- START SERVICE OBJECT DEFINITIONS
-- END SERVICE OBJECT DEFINITIONS
-- START CURSOR DEFINITIONS
-- END CURSOR DEFINITIONS
-- START TYPEDEF DEFINITIONS
-- END TYPEDEF DEFINITIONS
-- START METHOD DEFINITIONS
method Node.getName: Framework.string
begin
return mName.Clone(deep=TRUE).Value;
end method;
method Node.Init
begin
super.Init();
mName = new();
end method;
method Node.setName(input Name: Framework.string)
begin
mName = TextData(Name).Clone(deep=TRUE);
end method;
-- END METHOD DEFINITIONS
HAS PROPERTY
CompatibilityLevel = 0;
ProjectType = APPLICATION;
Restricted = FALSE;
MultiThreaded = TRUE;
Internal = FALSE;
LibraryName = 'compfram';
end CompFramework;
begin TOOL Server;
includes CompFramework;
includes Framework;
HAS PROPERTY IsLibrary = FALSE;
-- START FORWARD CLASS DECLARATIONS
forward InfoService;
forward StartUp;
-- END FORWARD CLASS DECLARATIONS
-- START FORWARD CURSOR DECLARATIONS
-- END FORWARD CURSOR DECLARATIONS
-- START CONSTANT DEFINITIONS
-- END CONSTANT DEFINITIONS
-- START C DATA TYPE DEFINITIONS
-- END C DATA TYPE DEFINITIONS
-- START CLASS DEFINITIONS
class InfoService inherits from Framework.Object
has public method getNodes: Framework.Array of CompFramework.Node;
has public method Init;
has property
shared=(allow=off, override=on);
transactional=(allow=off, override=on);
monitored=(allow=off, override=on);
distributed=(allow=on, override=on, default=off);
end class;
class StartUp inherits from Framework.Object
has public method Init;
has public method StartMethod;
has property
shared=(allow=off, override=on);
transactional=(allow=off, override=on);
monitored=(allow=off, override=on);
distributed=(allow=off, override=on);
end class;
-- END CLASS DEFINITIONS
-- START SERVICE OBJECT DEFINITIONS
service InfoSO : Server.InfoService = (DialogDuration = MESSAGE,
Visibility = environment,
FailOver = FALSE,
LoadBalance = TRUE) HAS PROPERTY extended = (UUID =
'8A0E2800-387A-11D2-
BFA0-DEA162A6AA77');
-- END SERVICE OBJECT DEFINITIONS
-- START CURSOR DEFINITIONS
-- END CURSOR DEFINITIONS
-- START TYPEDEF DEFINITIONS
-- END TYPEDEF DEFINITIONS
-- START METHOD DEFINITIONS
method InfoService.getNodes: Framework.Array of CompFramework.Node
begin
Nodes: Array of Node = new();
aNode: Node = new();
aNode.setName('Node1');
Nodes.AppendRow(aNode);
return Nodes;
end method;
method InfoService.Init
begin
super.Init();
end method;
method StartUp.Init
begin
super.Init();
end method;
method StartUp.StartMethod
begin
a : InfoService = InfoSO;
end method;
-- END METHOD DEFINITIONS
HAS PROPERTY
CompatibilityLevel = 0;
ProjectType = APPLICATION;
Restricted = FALSE;
MultiThreaded = TRUE;
Internal = FALSE;
LibraryName = 'server';
StartingMethod = (class = StartUp, method = StartMethod);
end Server;
====================== C++ file ===============================
#include <fstream.h>
#include <iostream>
#include <string>
#include "corba1_c.h"
int
main(int argc, char** argv)
try
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
ifstream from("c:\\forte\\etc\\iiopior\\server.ior");
char ch;
std::string ior_str;
while (from.get(ch))
ior_str += ch;
from.close();
CORBA::Object_var obj;
obj = orb->string_to_object( ior_str.c_str() );
Server::InfoService_var InfoSO;
InfoSO = Server::InfoService::_narrow(obj);
CompFramework::sequence_Node* nodes;
nodes = InfoSO->getNodes();
for (CORBA::ULong i=0; i<nodes->length(); i++)
cout << (*nodes)->getName() << endl;
catch(const CORBA::Exception& e)
cerr << e << endl;
return 1;
return 0;
======================== end of files ===================
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 just knocked up a quick C console "Hello World" program, including
ddeml.h, and got compilation errors.
Using borlands free C++ 5.5 compiler.
I don't think you're supposed to include that include file directly.
I done a search of the standard system include files, and it's already imported in windows.h.
When I include windows.h instead of ddeml.h, it compiles and runs.
I had to force C++ compilation though.
Compile line to compile:
bcc32.exe -P test.c
The -P forces a C++ compile on t C source.
Within my directory, I had a bcc32.cfg file, with my custom compiler switches too... This file contained the following, which can normally be specified on the command line. ( the paths will be different for you )
-I"d:\Compilers\Bcc55\include;d:\Compilers\Borland\CBuilder3\Include\VCL;d:\Compilers\jdk1.3.1_01\include;d:\Compilers\jdk1.3.1_01\include\win32"
-L"d:\Compilers\Bcc55\lib"
-3
-a8
-tWC
-RT
regards,
Owen -
Another forte-CORBA-VC++
Hi Everybody,
we are connecting to Forte conductor from a VC++ client via Visibroker. we
could able to open a session with the conductor but when we try to access
getActivitiesList it is returning null eventhough there are activities for
the user.
sample code:
CMyWFClient *theClient = new CMyWFClient();
const char* mypasswd = (const char*)((CCRMTSApp*)AfxGetApp())->passwd;
theClient->OpenSession((const char*)m_USER_ID,(const
char*)((CCRMTSApp*)AfxGetApp())->passwd,MyAssignments);
WFClientLibrary::sequence_WFActivity_ptr CurUserActivities;
do
CurUserActivities =
theClient->theSession->GetActivityList(WFCorbaApi::CorbaWFSession.AL_EVENTS_OFF|WFCorbaApi::CorbaWFSession.SAVE_UPDATES_ON);
if(!CurUserActivities->length())
_sleep(1000);
}while(!CurUserActivities->length());
Are there any possibilities of going wrong in the ORB-Conductor
communication.
thanks in advance
Get Your Private, Free Email at http://www.hotmail.com
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>Hi, Srinivas
I do have "a C++ application communicating with a Forte Service Object via
Visibroker", and also my remote method of the service object is returning an
Array of Object (to be exact, a subclass of Object). It is hard to figure out
what happened just from the information you provided here. If you could provide
more information, it might be helpful.
CORBA::UNKOWN exception: The explanation is The ORB could not determine the
thrown exception. The server throws something other than a correct exception
such as Windows runtime exception.
By default, when Forte generates an IDL method, it raises an exception either
GenericException or UserException. You can subclass GenericException or
UserException to add custom exception classes.
Shilong Yin
US West in Denver
Srinivas Delu wrote:
Hi Everybody,
Does any one worked on a C++ application communicating with a Forte Service
Object via Visibroker. Problem we are facing is we could't able to call a
Service Object Method which is returning a Array of Objects. Forte
generating the IDL for the function but when we tried to access the function
from the C++ client causing CORBA::UNKOWN exception.
thanks in advance..
[email protected]
Get Your Private, Free Email at http://www.hotmail.com
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/> -
Hello all,
I'm experiencing a problem passing variables from JavaScript to the Forte
backend. I am using the following function in my html document.
<DEFANGED_script language="JavaScript">
<!--
function OpenPage(pAccNo,pSrcCode,pExpType)
// this is just to view the variable's values
alert("The value of AccNo, Source Code, Exp Type is : "+pAccNo+'
'+pSrcCode+' '+pExpType);
window.open('http://forte_dev/cgi-forte/fortecgi.exe?ServiceName=GroupExpo
sure&TemplateName=GEExpEnq_DirectExposure_Loan.html&pAccountNumber=pAccNo&
pSourceCode=pSrcCode&pExposureType=pExpType','MyWindow',
'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,
resizable=no,copyhistory=no,width=400,height=400');
//-->
</script>
The value of the variables pAccNo, pSrcCode and pExpType are obtained from
an array (table) that is returned to my html doc. The following code
opens a window that executes the Forte tag to retrieve the data based on
the variable values.
<a
href="DEFANGED_javascript:OpenPage($$DirectExposure.AccountNumber,'$$DirectExposure
.kSourceCode','$$DirectExposure.ExposureType')">more details</a>
The problem is that the URL in the JavaScript passes the variable name
instead of the variable value. I can successfully open a window directly
using HTML code passing the variables as in this code below but I want to
use JS so that I can open different windows depending on the values on the
table.
<input type="submit" name="MoreBtn" value="More"
onClick="window.open('<a href="http://forte_dev/cgi-forte/fortecgi.exe?ServiceName=">http://forte_dev/cgi-forte/fortecgi.exe?ServiceName=</a>
GroupExposure&TemplateName=GEExpEnq_DirectExposure_Loan.html&pAccountNumbe
rpAccountNumber=$$DirectExposure.AccountNumber&pExposureType=$$DirectExpos
ure.ExposureType&pSourceCode=$$DirectExposure.kSourceCode','NewWin','toolb
ar=no,location=no,status=no,width=400,height=150')">
Does anyone have any ideas on how to pass variables to the Forte backend
using JavaScript?
Thanks in advance.
Regards
Aseesh Jairaj
NBS Bank
South Africa
WARNING:
Any unauthorised use or interception of this email is illegal. If this email
is not intended for you, you may not copy, distribute nor disclose the
contents to anyone. Save for bona fide company matters, the BoE Group does
not accept any responsibility for the opinions expressed in this email.
For further details please see: http://www.nbs.co.za/emaildisclaim.htmHello all,
I'm experiencing a problem passing variables from JavaScript to the Forte
backend. I am using the following function in my html document.
<DEFANGED_script language="JavaScript">
<!--
function OpenPage(pAccNo,pSrcCode,pExpType)
// this is just to view the variable's values
alert("The value of AccNo, Source Code, Exp Type is : "+pAccNo+'
'+pSrcCode+' '+pExpType);
window.open('http://forte_dev/cgi-forte/fortecgi.exe?ServiceName=GroupExpo
sure&TemplateName=GEExpEnq_DirectExposure_Loan.html&pAccountNumber=pAccNo&
pSourceCode=pSrcCode&pExposureType=pExpType','MyWindow',
'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,
resizable=no,copyhistory=no,width=400,height=400');
//-->
</script>
The value of the variables pAccNo, pSrcCode and pExpType are obtained from
an array (table) that is returned to my html doc. The following code
opens a window that executes the Forte tag to retrieve the data based on
the variable values.
<a
href="DEFANGED_javascript:OpenPage($$DirectExposure.AccountNumber,'$$DirectExposure
.kSourceCode','$$DirectExposure.ExposureType')">more details</a>
The problem is that the URL in the JavaScript passes the variable name
instead of the variable value. I can successfully open a window directly
using HTML code passing the variables as in this code below but I want to
use JS so that I can open different windows depending on the values on the
table.
<input type="submit" name="MoreBtn" value="More"
onClick="window.open('<a href="http://forte_dev/cgi-forte/fortecgi.exe?ServiceName=">http://forte_dev/cgi-forte/fortecgi.exe?ServiceName=</a>
GroupExposure&TemplateName=GEExpEnq_DirectExposure_Loan.html&pAccountNumbe
rpAccountNumber=$$DirectExposure.AccountNumber&pExposureType=$$DirectExpos
ure.ExposureType&pSourceCode=$$DirectExposure.kSourceCode','NewWin','toolb
ar=no,location=no,status=no,width=400,height=150')">
Does anyone have any ideas on how to pass variables to the Forte backend
using JavaScript?
Thanks in advance.
Regards
Aseesh Jairaj
NBS Bank
South Africa
WARNING:
Any unauthorised use or interception of this email is illegal. If this email
is not intended for you, you may not copy, distribute nor disclose the
contents to anyone. Save for bona fide company matters, the BoE Group does
not accept any responsibility for the opinions expressed in this email.
For further details please see: http://www.nbs.co.za/emaildisclaim.htm -
Re: (forte-users) Express Question
Hi,
I've done it using a dynamic DBSession manager (and dynamic dbsession
instanciation). But, you need to customize the Express Framework
(ExpressService.BusinessDBMgr) and modify the select, update, delete, execute
methods. You need also to maintain the statement cache linked to the DBsession
and manage the link between a DBsession and a task or use explicit mutex (the
aim is to have only one task assigned to a DBsession at a time : this should be
done in the DBSession Manager). If you use Dynamic DBSessions, you will also
need to add a synchronization to the DBsession Manager.
If you want to suppress the default DBSession service object, you will need to
customize the code generation. You should ask the Forte Consulting I think...
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
Url : http://perso.club-internet.fr/dnguyen/
[email protected] a écrit:
Has anyone tried replicating the partitions that contain the DBService SOs
from the Business Model (ie. DBSessions)? We are attempting to do this to
avoid single-threading access to our database and wondered if anyone had
done this successfully. Thanks for your help.
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected]Hi,
I've done it using a dynamic DBSession manager (and dynamic dbsession
instanciation). But, you need to customize the Express Framework
(ExpressService.BusinessDBMgr) and modify the select, update, delete, execute
methods. You need also to maintain the statement cache linked to the DBsession
and manage the link between a DBsession and a task or use explicit mutex (the
aim is to have only one task assigned to a DBsession at a time : this should be
done in the DBSession Manager). If you use Dynamic DBSessions, you will also
need to add a synchronization to the DBsession Manager.
If you want to suppress the default DBSession service object, you will need to
customize the code generation. You should ask the Forte Consulting I think...
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
Url : http://perso.club-internet.fr/dnguyen/
[email protected] a écrit:
Has anyone tried replicating the partitions that contain the DBService SOs
from the Business Model (ie. DBSessions)? We are attempting to do this to
avoid single-threading access to our database and wondered if anyone had
done this successfully. Thanks for your help.
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected] -
More specific to two questions
Hi,
First of all, many thanks to Rottier, Daniel, Geoff. Your ideas are
definitely useful.
Regarding two questions I posted yesterday, I’d like to give you more
background information so that it will make questions more specific.
Now we have a lot of applications (programs) written in either C, C++,
Java codes or Forte (maybe other language like VB). Our purpose is to
integrate all the codes written for the different platforms such as
Windows NT and UNIX together seamlessly through CORBA or CORBA-IIOP
(Internet Inter-Object Request Broker Protocol). The most difficulties
I have met so far are to pass an object by its value. As you know,
CORBA specifications, version 2, don’t support the concept “pass object
by value”. But currently, some of CORBA vendors such as Forte and Iona
(OrbixWeb) do extend the concept “pass by reference” and support the
concept “pass object by value” for Java Mode not for IDL (Interface
Definition Language) Mode. If we want to integrate all codes together
without the support of “pass object by value”, the following question I
need to answer is the garbage collection in the Forte server side. In
CORBA IDL mode, I have to set all IsAnchored attributes of all objects
to TRUE. Can these objects be garbage collected? If yes, how does the
garbage collection work?
Please note that the client (C, C++, Java or other language) and the
server (Forte) are written using different languages (not limited to
Forte)! The question I posted can be much complicated if the client and
server are written in the different languages and for the different
platforms (NT and UNIX) as well as applied to the distributed and
multithreaded environment.
To be exact, if one of the multiple remote C++ clients decides not to
access the objects (not limited to service objects) in the Forte server,
how does Forte garbage collection know what the client has done
automatically and garbage collect the object? It is known that CORBA
does not support garbage collection. Is there any functionality
provided by Forte to let itself be automatically notified? As we know,
COM and DCOM do have such kind of functionality. When you integrate
DCOM with your applications, at both sides (client and server), it is
DCOM who internally poll the object references periodically. How about
CORBA and Forte? Forte has integrated IIOP as its own built-in
component and supported VisiBroker and IONA CORBA products. My guess is
because Forte has IIOP built in itself (both sides have to run ORB), so
Forte has the full control over the whole running environment, and can
monitor the references to the objects, and apply the garbage collection
to the objects automatically. Is this true? Here are the key words:
multiple, remote (distributed), different platforms and languages,
CORBA-IIOP. We should take all of these things into our consideration.
I did find that there is a big difference between IsAnchored set to TRUE
and FALSE when I tried to integrate C++ client, Forte server and Java
client, Forte server. For the C++ client, you have to set IsAnchored
attributes of all kinds of objects to TRUE. Note that In Forte, the
service objects and the ordinary objects are treated differently. The
service objects are created by Compiler or Interpreter. It is
transparent to the users. The ordinary objects are created at run time,
garbage collection can be applied to. For Java client, you can either
set IsAnchored attribute to TRUE or FALSE depending on what you want
(access the services provided by Forte server side by value or
reference). This really answers the question: IsAnchored can control
pass object by value or reference, and really matches what you guys
talked about in your e-mail. My thoughts are that IsAnchored has
nothing to do with the garbage collection, otherwise this will disable
the garbage collection at all! Because I have to set all IsAnchored
attributes to TRUE at Forte server side for my C++ client, if the
garbage collection is really based on the IsAnchored attribute, this
means that the garbage collection is totally disabled for all those
objects with their IsAnchored attributes set to TRUE! Can anyone
confirm that? Don’t forget that this issue is raised in such
complicated environment! What I want to clarify is whether Forte does
provide such a garbage collection mechanism so nice, so smart to
automatically maintain a persistent object reference table or whatever
and deal with the garbage collection issue in such complicated
environment!
Believe this can make my questions much specific and clear. I’d like to
discuss more details about it.
Thank you again for your informative ideas.
Shi-Long, Yin
US West in Denver
Tel: 303-624-1305
e-mail: [email protected]
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>Hi,
First of all, many thanks to Rottier, Daniel, Geoff. Your ideas are
definitely useful.
Regarding two questions I posted yesterday, I’d like to give you more
background information so that it will make questions more specific.
Now we have a lot of applications (programs) written in either C, C++,
Java codes or Forte (maybe other language like VB). Our purpose is to
integrate all the codes written for the different platforms such as
Windows NT and UNIX together seamlessly through CORBA or CORBA-IIOP
(Internet Inter-Object Request Broker Protocol). The most difficulties
I have met so far are to pass an object by its value. As you know,
CORBA specifications, version 2, don’t support the concept “pass object
by value”. But currently, some of CORBA vendors such as Forte and Iona
(OrbixWeb) do extend the concept “pass by reference” and support the
concept “pass object by value” for Java Mode not for IDL (Interface
Definition Language) Mode. If we want to integrate all codes together
without the support of “pass object by value”, the following question I
need to answer is the garbage collection in the Forte server side. In
CORBA IDL mode, I have to set all IsAnchored attributes of all objects
to TRUE. Can these objects be garbage collected? If yes, how does the
garbage collection work?
Please note that the client (C, C++, Java or other language) and the
server (Forte) are written using different languages (not limited to
Forte)! The question I posted can be much complicated if the client and
server are written in the different languages and for the different
platforms (NT and UNIX) as well as applied to the distributed and
multithreaded environment.
To be exact, if one of the multiple remote C++ clients decides not to
access the objects (not limited to service objects) in the Forte server,
how does Forte garbage collection know what the client has done
automatically and garbage collect the object? It is known that CORBA
does not support garbage collection. Is there any functionality
provided by Forte to let itself be automatically notified? As we know,
COM and DCOM do have such kind of functionality. When you integrate
DCOM with your applications, at both sides (client and server), it is
DCOM who internally poll the object references periodically. How about
CORBA and Forte? Forte has integrated IIOP as its own built-in
component and supported VisiBroker and IONA CORBA products. My guess is
because Forte has IIOP built in itself (both sides have to run ORB), so
Forte has the full control over the whole running environment, and can
monitor the references to the objects, and apply the garbage collection
to the objects automatically. Is this true? Here are the key words:
multiple, remote (distributed), different platforms and languages,
CORBA-IIOP. We should take all of these things into our consideration.
I did find that there is a big difference between IsAnchored set to TRUE
and FALSE when I tried to integrate C++ client, Forte server and Java
client, Forte server. For the C++ client, you have to set IsAnchored
attributes of all kinds of objects to TRUE. Note that In Forte, the
service objects and the ordinary objects are treated differently. The
service objects are created by Compiler or Interpreter. It is
transparent to the users. The ordinary objects are created at run time,
garbage collection can be applied to. For Java client, you can either
set IsAnchored attribute to TRUE or FALSE depending on what you want
(access the services provided by Forte server side by value or
reference). This really answers the question: IsAnchored can control
pass object by value or reference, and really matches what you guys
talked about in your e-mail. My thoughts are that IsAnchored has
nothing to do with the garbage collection, otherwise this will disable
the garbage collection at all! Because I have to set all IsAnchored
attributes to TRUE at Forte server side for my C++ client, if the
garbage collection is really based on the IsAnchored attribute, this
means that the garbage collection is totally disabled for all those
objects with their IsAnchored attributes set to TRUE! Can anyone
confirm that? Don’t forget that this issue is raised in such
complicated environment! What I want to clarify is whether Forte does
provide such a garbage collection mechanism so nice, so smart to
automatically maintain a persistent object reference table or whatever
and deal with the garbage collection issue in such complicated
environment!
Believe this can make my questions much specific and clear. I’d like to
discuss more details about it.
Thank you again for your informative ideas.
Shi-Long, Yin
US West in Denver
Tel: 303-624-1305
e-mail: [email protected]
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
Hi there,
I've been trying to get IIOP working with forte but have encountered
some stumbling blocks.
This is the test situation:
I'm trying to get a forte corba client to talk to a forte corba server
through IIOP using fortes ORB (i.e. I have not installed any third party
ORB product)
Details:
1. IIOP Forte Server
I created a service object and marked it to be used with IIOP:
specified to create the IOR file at distribution.
listener location is remote
started up the IIOPGW (gateway) and confirmed it is working
distibuted and installed the application.
verified that the IOR file was created
started the partition containing the IIOP forte service
2. IIOP Forte Client
used CORBAGEN facility to create the stubs for the client service to
use.
imported the 'pex' file into the workspace
created a service object based on the class created in the imported
project
created a window, added a button to display the return value of the
remote service call
partitioned the app, and ran it.
Nothing happened. No distributed access exception fired. and the data
returned was not correct (i.e. returned an empty string).
Here is the SERVER CODE for the hellow world method:
s:string;
task.part.logmgr.putline( 'in iiopService_n.HelloWorld_ms' );
s = 'Hello World';
return s;
Here is the CLIENT CODE
when <IIOP_client_exe_wcb>.click do
begin
s : string;
s = '####';
//distributed IIOP call
s = IIOPService_so.HelloWorld_ms();
return_wed = s;
exception
when e:genericexception do
self.window.messagedialog( 'Generic exception occured' );
raise;
else do
self.window.messagedialog( 'reached else exception' );
raise;
end;
I'm wondering if it is possible to have forte talk to itself from the
same environment through Corba's IIOP
Thanks in advance...
<<< Stuart Ngai (416)359-4306 [email protected] >>>At 05:46 PM 5/19/97 -0500, Dan Reid wrote:
I have had several requests to post my Forum presentation. Is Fort goingto
post the slide shows on their website?I have made this recommendation to Richard Scheffer during the conference.
I would suggest that others do the same if they think it is a good idea.
=========================================================================
Thomas Mercer Hursh, Ph.D email: [email protected]
Computing Integrity, Inc. sales: 510-233-9329
550 Casey Drive - Cypress Point support: 510-233-9327
Point Richmond, CA 94801-3751 fax: 510-233-6950 -
Hi,
Following the question I posted yesterday, I’d like to heat up the
discussions about integration of SynerJ with Forte. If anybody comes up
with any good ideas, that will be great.
Now our real challenge is to replace “legacy” (for sure, not everyone like
that word!) Forte TOOL front-end GUI client codes with Java codes. Because
we have many existing Forte TOOL codes needed to be used at the server side,
so we are going to build the general architecture as: at client side, we
need Web client with Java applet enabled to get the dynamic Web pages; at
the server side, we want EJB (this can be done using SynerJ) to be able to
communicate with Forte TOOL codes (reuse some existing Forte TOOL codes).
So far, I haven’t got any optimistic solutions. Probably we have to go back
to resort Forte/CORBA/IIOP (I got much bitter experience with that) to set
up a bridge between Forte and SynerJ (Java). The difficulties come out from
many aspects: first, SynerJ supports J2EE (Java 2 Enterprise Edition) or JDK
1.2 with built-in ORB—Java IDL, but Forte/CORBA/IIOP only (most probably)
supports two ORB vendors’ products—Inprise’s VisiBroker for Java and Iona’s
OrbixWeb, NOT Java IDL ORB. Second, if we decide to let our EJB server
communicate with Forte components written in Forte TOOL through CORBA/IIOP,
we have to buy either CORBA product from the listed two vendors. That will
be very expensive. Also, we have to struggle to find out any
incompatibility issues among all vendors such as Forte, CORBA, WebBrowser
vendors. E.g. SynerJ supports JDK 1.2, Forte(L version)/CORBA/IIOP just
supports JDK 1.1.x (not JDK 1.2, not JavaSoft’s Java IDL ORB), VisiBroker
for Java 3.x. As we know, Netscape Web Browser supports VisiBroker 2.5,
almost one version behind the current version. You may have to turn to Java
Plug-in for helps. It seems the best solution should come from Forte
company itself—make the users of SynerJ or Forte easier to integrate SynerJ
with Forte. Will Forte company support the integration of Forte with SynerJ
one day? Why not?
Regards,
Shilong YinAs we know, CORBA specification 2 only loosely specified BOA. It is up to
CORBA vendors to build their own BOA-Basic Object Adapter (you may know why
Forte said it supports Inprise and Iona). CORBA specification 3 will adopte
POA-Portable Object Adaptor which will be compatible cross CORBA vendors.
If you tried to compile Forte IIOP examples using JDK 1.2, you would find
out many incompatibilities.
Shilong Yin
From: Augusto Jun Devegili <[email protected]>
To: [email protected]
Subject: RE: (forte-users) SynerJ Discussions
Date: Thu, 14 Oct 1999 20:55:25 -0300
We have been able to use Sun's ORB (JavaIDL) to talk to Conductor (which is
written in TOOL). This connection has not been tested extensively, though.
But I opened a support call at Forté and I was told that there should be no
problems in using Sun's Java IDL.
Just my 2 cents. :)
-----Original Message-----
From: Shilong Yin [mailto:[email protected]]
Sent: Quinta-feira, 14 de Outubro de 1999 19:20
To: [email protected]
Subject: (forte-users) SynerJ Discussions
Hi,
Following the question I posted yesterday, I'd like to heat up the
discussions about integration of SynerJ with Forte. If anybody comes up
with any good ideas, that will be great.
Now our real challenge is to replace "legacy" (for sure, not everyone like
that word!) Forte TOOL front-end GUI client codes with Java codes. Because
we have many existing Forte TOOL codes needed to be used at the server
side,
so we are going to build the general architecture as: at client side, we
need Web client with Java applet enabled to get the dynamic Web pages; at
the server side, we want EJB (this can be done using SynerJ) to be able to
communicate with Forte TOOL codes (reuse some existing Forte TOOL codes).
So far, I haven't got any optimistic solutions. Probably we have to go
back
to resort Forte/CORBA/IIOP (I got much bitter experience with that) to set
up a bridge between Forte and SynerJ (Java). The difficulties come out
from
many aspects: first, SynerJ supports J2EE (Java 2 Enterprise Edition) or
JDK
1.2 with built-in ORB-Java IDL, but Forte/CORBA/IIOP only (most probably)
supports two ORB vendors' products-Inprise's VisiBroker for Java and Iona's
OrbixWeb, NOT Java IDL ORB. Second, if we decide to let our EJB server
communicate with Forte components written in Forte TOOL through CORBA/IIOP,
we have to buy either CORBA product from the listed two vendors. That will
be very expensive. Also, we have to struggle to find out any
incompatibility issues among all vendors such as Forte, CORBA, WebBrowser
vendors. E.g. SynerJ supports JDK 1.2, Forte(L version)/CORBA/IIOP just
supports JDK 1.1.x (not JDK 1.2, not JavaSoft's Java IDL ORB), VisiBroker
for Java 3.x. As we know, Netscape Web Browser supports VisiBroker 2.5,
almost one version behind the current version. You may have to turn to
Java
Plug-in for helps. It seems the best solution should come from Forte
company itself-make the users of SynerJ or Forte easier to integrate SynerJ
with Forte. Will Forte company support the integration of Forte with
SynerJ
one day? Why not?
Regards,
Shilong Yin
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected] -
How to disable Soundcheck for a single Album
Hello,
Soundcheck option in Preferences works pretty good for me, since I shuffle from classical to metal.
But, inside a single album, say, an Opera which is meant to be fully played w/out pauses, I don't want the volume to be leveled throug Pianissimo and Forte tracks.
Question:
Is there any way to disable Soudcheck for a single Album so iTunes does NOT calculate peek levels on its tracks and does not set gain/loss accordingly?
Or do I need to turn off Soundcheck on the iPod when I want to listen to that particular Album?
I have tried "Volume level" slider but it sets the overall volume gain of the Album and not the relative level between tracks. Also the "pauseless" option (sorry, I use a localized version) is no solution.
TIAIs there any way to disable Soudcheck for a single Album
No.
Or do I need to turn off Soundcheck on the iPod when I want to listen to that particular Album?
Yes. -
Re: string to TextData Coercion
Braja,
I'm not from Forte, but on the app dev course we discussed this. When you
call your second line, the first myTD object is 'lost' and garbage
collected. To stop this happening rather use
myTD.value = 'Foobar'; // or better still -
myTD.SetValue('Foobar');
Regards
Richard Stobart
Consultant, ECSoft, UK
101 Wigmore Street
London W1H 9AA
(0171) 355 1101
-----Original Message-----
From: braja chattaraj <[email protected]>
To: [email protected] <[email protected]>
Date: 26 March 1998 20:34
Subject: string to TextData Coercion
I have a question regarding this statement :
Where it can cause inefficiency is:
myTD : TextData = new(); // Do an explicit new
myTD = "Foobar"; // Lose the old TextData and replace
// with the implicit one.
The question is, in the above eg., is the assignment operator 'operator
overloaded' which uses the previous instantiation, or does it cause a
new instantiation all over again.
This is a Forte Software implementation question. So, somebody from
Forte Software Inc. should be able to answer this better. Unless ...
Regards,
Braja.
BRAJA KISHORE CHATTARAJ
Consultant, Analysts International Corporation.
Home : 1801, Williamsburg Road, #41H, Durham, NC 27707
919-403-7296
Email : [email protected]
Get Your Private, Free Email at http://www.hotmail.comAccepted ! I never knew assignment causes an instantiation.
SetValue() is the safest option. That's the conclusion.
Thanks.
Braja.
----Original Message Follows----
From: [email protected]
To: [email protected],
[email protected]
Date: Fri, 27 Mar 1998 08:00:15 -0600
Subject: Re: string to TextData Coercion
Braja,
Does this answer your question? It prints out "FooBar" and "AAA",
which,
to me, indicates that the assignment causes a new instantiation.
aTD : TextData = New(Value = 'AAA');
bTD : TextData = aTD;
aTD = 'FooBar';
task.lgr.putline(aTD);
task.lgr.putline(bTD);
Dustin Breese
Per-Se Technologies
BRAJA KISHORE CHATTARAJ
Consultant, Analysts International Corporation.
Home : 1801, Williamsburg Road, #41H, Durham, NC 27707
919-403-7296
Email : [email protected]
Get Your Private, Free Email at http://www.hotmail.com -
I have a question regarding this statement :
Where it can cause inefficiency is:
myTD : TextData = new(); // Do an explicit new
myTD = "Foobar"; // Lose the old TextData and replace
// with the implicit one.
The question is, in the above eg., is the assignment operator 'operator
overloaded' which uses the previous instantiation, or does it cause a
new instantiation all over again.
This is a Forte Software implementation question. So, somebody from
Forte Software Inc. should be able to answer this better. Unless ...
Regards,
Braja.
BRAJA KISHORE CHATTARAJ
Consultant, Analysts International Corporation.
Home : 1801, Williamsburg Road, #41H, Durham, NC 27707
919-403-7296
Email : [email protected]
Get Your Private, Free Email at http://www.hotmail.comAccepted ! I never knew assignment causes an instantiation.
SetValue() is the safest option. That's the conclusion.
Thanks.
Braja.
----Original Message Follows----
From: [email protected]
To: [email protected],
[email protected]
Date: Fri, 27 Mar 1998 08:00:15 -0600
Subject: Re: string to TextData Coercion
Braja,
Does this answer your question? It prints out "FooBar" and "AAA",
which,
to me, indicates that the assignment causes a new instantiation.
aTD : TextData = New(Value = 'AAA');
bTD : TextData = aTD;
aTD = 'FooBar';
task.lgr.putline(aTD);
task.lgr.putline(bTD);
Dustin Breese
Per-Se Technologies
BRAJA KISHORE CHATTARAJ
Consultant, Analysts International Corporation.
Home : 1801, Williamsburg Road, #41H, Durham, NC 27707
919-403-7296
Email : [email protected]
Get Your Private, Free Email at http://www.hotmail.com
Maybe you are looking for
-
Hi All, Can any one explain me the below Formuls.......not sure whether is it IF Condition. ( ( 'PR Qty' - 'Ordered Qty' ) < 0 ) * 0 + ( ( 'PR Qty' - 'Ordered Qty' ) >= 0 ) ( 'PR Qty' - 'Ordered Qty' ) Above logic is to get OPEN PO QTY........once i
-
I just purchased an iTouch to replace my old Palm pilot for an organizer, but am not sure how to sync. I thought you would be able to sync with Microsoft Outlook or Google calendar, but am unfamiliar with sync capabilities in these programs. I have r
-
Newpaper type columns in reports 9i??????
I have a report that I want to display as newspaper type columns. HOW DO YOU DO THIS IN REPORTS??? Other products you can just select a newspaper column option and a number of columns. This one I can't figure out. I have tried the column mode propert
-
Native Performance pack for Intel Solaris
Do we have native performance pack for Intel Solaris? We are using Weblogic 4.5.1 Thanks Nagaraj
-
No music in Scummvm [solved]
I get no music in Scummvm, and I got not idea of the problem. My midi should work, I can listen to a .midi file using: fluidsynth -a alsa -m alsa_seq -l -i /usr/share/soundfonts/fluidr3/FluidR3GM.SF2 testfile.mid as suggested by the wiki. I am using