Select - Forte

We have just begun using SELECT ENTERPRISE to perform OO
modeling in conjuction with Forte development . We have not yet
reach the point of code generation but have heard through the
grapevine that there are problems with SELECT/FORTE in the original
generation of code and in the reverse engineering of tool code.
Would/Could anyone enlighten me with known problems ??
Karl Perna
[email protected]

Karl
We have been using SELECT and the Forté generator to aid our
development.
To be honest it has not proven very successful SELECT itself is fine and
a great aid to the development ( Enterprise 5.1) but the generator does
cause problems under certain conditions.
1. Configuration of the templates in SELECT is a must - you have to
enable the users generating the code access to most of the Forte
settings. E.g.. Without this when classes are renamed the generator will
create classes with the old name etc.
2. There is a bug in Forté apparently that only seems to be caused when
we generate classes from SELECT. The project that contains the classes
generated cannot be exported ( Ftexec error - GPF ).
3. We are using a Third party framework and all our business classes
inherit from a framework class which is fine until you try
roundtripping. The classes generated are changed in Forte to inherit
from the framework class. This causes the class to be reverse engineered
into SELECT and then generated as a forward declaration when the code is
again generated into Forte. Any new classes that are forward generated
subsequently cannot inherit from the framework class as Forte will not
allow inheritance from forward declared classes.
This last problem is overcome by the use of categories/packages in the
next version of SELECT - when SELECT will be able to generate true Pex
files and know about the relationship between categories thus removing
the need for forward declarations. We have just received the new beta
version of SELECT and the generator.
From: Karl Perna[SMTP:[email protected]]
Sent: 27 March 1997 23:02
To: 'ForteUsersML'
Subject: Select - Forte
We have just begun using SELECT ENTERPRISE to perform OO
modeling in conjuction with Forte development . We have not yet
reach the point of code generation but have heard through the
grapevine that there are problems with SELECT/FORTE in the original
generation of code and in the reverse engineering of tool code.
Would/Could anyone enlighten me with known problems ??
Karl Perna
[email protected]

Similar Messages

  • Prototype using Forte

    Hi Netters,
    Has anybody developed a prototype of your application usnig Forte? If
    so, I would like to know the goods and bads of selecting Forte to
    develop the prototype.
    We are debating between Forte and VB for our Prototype. We want to be
    able to send a copy of the prototype on disk(s) to customers for them to
    install it on their PC and run them.
    Any suggestions will also be helpful.
    Thanks
    Venkat J Kodumudi
    Lead Systems Engineer - PageNet
    (972) 985-2451
    Internet: [email protected]

    from below:
    If a primary requirement of your prototype is the ability to ship the
    prototype to customers for review, I would suggest that Forte is not your
    best choice - your customers would need the Forte runtime environment to run
    the application. There are alternatives however. Another alternative to get around this concern is an approach we've used for several
    forte projects successfully. We make use of a very inexpensive Lotus ScreenCam
    product which allows us to put an executable on the network for user browsing
    when they have the chance. This executable is generated using Lotus ScreenCam
    which captures basically a movie of whatever you want to run. For example, we
    run the forte prototype, even use a microphone to narrate, and then stop it
    and either send the executable or movie through the internet to people or
    make it available to the audience by diskette or by placing it somewhere they
    can access it from. Its a pretty nifty package which gives the user
    speed up and slow down and replay options.
    Secondarily, for thoise interested we have a White Paper on Prototyping
    do's and don'ts that we have provided. Contact me if this word doc would be
    of interest and I will uuencode and send it out.
    Len
    From: "ANDERSON Bruce (SHINET01) (MSMail)" <[email protected]>
    We have just finished a Forte-based prototype, and the effort was a raging
    success.
    The purpose, goals, and expected benefits of a prototyping effort should
    always drive selection of the development tool.
    If you are planning to develop the final application in Forte, the answer is
    YES! Develop your prototype in Forte. The lessons learned during that
    first effort will be invaluable as you move into development of the final
    system.
    If you are using the prototype effort to compare the differences between
    Forte and Visual Basic, the answer is yes again. Not only will you be able
    to measure the differences in an application developed with the two tools,
    but you will have a better understanding of the relative levels of effort,
    quality, reusability, etc.
    On the other hand if your intention is to whip up a flashy GUI to impress
    your customers, Visual Basic may be the best choice. But remember that if
    the final tool selection has not been made, using the wrong tool may lead to
    unrealistic expectations (good and bad) in terms of price, performance,
    extendibility, etc. You have to deliver on your promises.
    If a primary requirement of your prototype is the ability to ship the
    prototype to customers for review, I would suggest that Forte is not your
    best choice - your customers would need the Forte runtime environment to run
    the application. There are alternatives however. As we've done on our
    project, you could invite your customers to your offices for a visit and
    demonstrate the prototype for them on your equipment. This gives you an
    opportunity to gauge their enthusiasm (or lack thereof) for your product, as
    well as obtaining valuable feedback. Another alternative would be to take
    the application on a "road show", demonstrating the prototype while visiting
    your customers in their offices.
    Bruce Anderson
    Senior Systems Engineer
    MCI Systemhouse
    Forte First Strike Team
    [email protected]
    (310) 403-4997
    From: Venkat Kodumudi[SMTP:[email protected]]
    Sent: Wednesday, October 09, 1996 8:40 AM
    To: 'Forte User Group'
    Subject: Prototype using Forte
    Hi Netters,
    Has anybody developed a prototype of your application usnig Forte? If
    so, I would like to know the goods and bads of selecting Forte to
    develop the prototype.
    We are debating between Forte and VB for our Prototype. We want to be
    able to send a copy of the prototype on disk(s) to customers for them to
    install it on their PC and run them.
    Any suggestions will also be helpful.
    Thanks
    Venkat J Kodumudi
    Lead Systems Engineer - PageNet
    (972) 985-2451
    Internet: [email protected]

  • Help - Forte Can't Find the Browser

    Help! I've installed Forte on Windows NT 4.0, it will compile and build successfully, but when I try to execute,I get the message
    "Could not access the URL through the external browser". It also says that when I hit the "Web Browser" option in the Menu bar.
    The log file follows, so you can see all my settings and stuff. Internet Explorer is my default browser.
    Thanks! I'm stuck!
    +++++++++
    Log Session: Saturday, August 2, 2003 11:59:10 AM BST
    System Info: Product Version = Forte for Java, CE v. 3.0 (Build 010925)
    IDE Versioning = IDE/1 spec=1.2.2 impl=010925
    Operating System = Windows NT version 4.0 running on x86
    Java; VM; Vendor = 1.3.1_01; Java HotSpot(TM) Client VM 1.3.1_01; Sun Microsystems Inc.
    Java Home = D:\JDK13~1.1_0\jre
    System Locale = en_US (f4j_ce)
    Home Dir; Current Dir = C:\WINNT\Profiles\Administrator; d:\forte4j\bin
    IDE Install; User Dir = D:\forte4j; D:\WorkForte
    CLASSPATH = D:\forte4j\lib\patches\openide-compat.jar;D:\forte4j\lib\locale\core_f4j.jar;D:\forte4j\lib\locale\core_f4j_ce.jar;D:\forte4j\lib\locale\core_f4j_ce_ja.jar;D:\forte4j\lib\locale\core_f4j_ja.jar;D:\forte4j\lib\locale\core_ja.jar;D:\forte4j\lib\locale\openide_f4j.jar;D:\forte4j\lib\locale\openide_ja.jar;D:\forte4j\lib\locale\updater_ja.jar;D:\forte4j\lib\core.jar;D:\forte4j\lib\openide-fs.jar;D:\forte4j\lib\openide-nodes.jar;D:\forte4j\lib\openide-util.jar;D:\forte4j\lib\openide.jar;D:\forte4j\lib\ext\locale\ddl_ja.jar;D:\forte4j\lib\ext\locale\logger_ja.jar;D:\forte4j\lib\ext\locale\rmi-ext_ja.jar;D:\forte4j\lib\ext\bsh-1_0-fj.jar;D:\forte4j\lib\ext\cmd.jar;D:\forte4j\lib\ext\cosnaming.jar;D:\forte4j\lib\ext\ddl.jar;D:\forte4j\lib\ext\fjscript.jar;D:\forte4j\lib\ext\flute.jar;D:\forte4j\lib\ext\fscontext.jar;D:\forte4j\lib\ext\idlcompilers.jar;D:\forte4j\lib\ext\jaas.jar;D:\forte4j\lib\ext\jaxp.jar;D:\forte4j\lib\ext\jh.jar;D:\forte4j\lib\ext\jndi.jar;D:\forte4j\lib\ext\ldap.jar;D:\forte4j\lib\ext\ldapbp.jar;D:\forte4j\lib\ext\logger.jar;D:\forte4j\lib\ext\nis.jar;D:\forte4j\lib\ext\openorb-1.0.2.jar;D:\forte4j\lib\ext\parser.jar;D:\forte4j\lib\ext\pbclient.jar;D:\forte4j\lib\ext\providerutil.jar;D:\forte4j\lib\ext\regexp.jar;D:\forte4j\lib\ext\rmi-ext.jar;D:\forte4j\lib\ext\rmiregistry.jar;D:\forte4j\lib\ext\sac.jar;D:\forte4j\lib\ext\sax2.jar;D:\forte4j\lib\ext\servlet.jar;D:\forte4j\lib\ext\xerces.jar;D:\forte4j\lib\ext\jdbc20x.zip;D:\JDK13~1.1_0\lib\dt.jar;D:\JDK13~1.1_0\lib\tools.jar
    [INFO] Loaded modules: org.netbeans.core/1 (1.0.1/unspec); com.sun.ffj.modules.registration (1.0/010925); com.sun.forte4j.modules.dd/1 (1.0/010925); com.sun.forte4j.modules.pointbase/1 (1.2/010925); org.apache.tools.ant.module/2 (2.2.2/010925); org.netbeans.modules.autoupdate/1 (2.0.1/010925); org.netbeans.modules.clazz/1 (1.6.2/010925); org.netbeans.modules.db/1 (1.4/010925); com.sun.forte4j.modules.dbmodel.jdbcimpl/1 (1.2/010925); org.netbeans.modules.debugger.core/2 (2.0.2/010925); org.netbeans.modules.applet/1 (1.6.2/010925); org.netbeans.modules.debugger.debug/1 (1.8.2/010925); org.netbeans.modules.debugger.jpda/1 (1.8.2/010925); org.netbeans.modules.editor/1 (1.7.2/010925); org.netbeans.modules.corba.idl.editor/1 (1.2/010925); org.netbeans.modules.filecopy/1 (1.4/010925); org.netbeans.modules.html/1 (1.7.2/010925); org.netbeans.modules.httpserver/1 (1.6.2/010925); org.netbeans.modules.extbrowser/1 (0.2.2/010925); org.netbeans.modules.image/1 (1.6.2/010925); org.netbeans.modules.jarpackager/2 (1.6.2/010925); org.netbeans.modules.java/1 (1.6.2/010925); com.sun.forte4j.persistence.internal.ui/1 (1.2/010925); org.netbeans.modules.beans/1 (1.6.2/010925); org.netbeans.modules.corba/1 (1.4/010925); org.netbeans.modules.form/2 (1.6.2/010925); org.netbeans.modules.javadoc/1 (1.6.2/010925); org.netbeans.modules.jndi/1 (1.4.1/010925); org.netbeans.modules.logger/1 (1.2.1/010925); com.sun.forte4j.modules.depclass/1 (1.1/010925); org.netbeans.modules.objectbrowser/1 (1.6.2/010925); org.netbeans.modules.projects/1 (1.6.2/010925); org.netbeans.modules.properties/1 (1.6.2/010925); org.netbeans.modules.i18n/1 (1.7.1/010925); org.netbeans.modules.i18n.form/2 (1.7.1/010925); org.netbeans.modules.jdbc/1 (1.2/010925); org.netbeans.modules.properties.syntax/1 (1.6.2/010925); org.netbeans.modules.text/1 (1.6.2/010925); org.netbeans.modules.usersguide/1 (1.7.3/010925); org.netbeans.modules.xml/1 (1.5/010925); org.netbeans.modules.xml.editor.coloring/1 (1.2/010925); org.openidex.util/1 (1.7.1/010925); org.netbeans.modules.j2eeserver/1 (1.1.3/010925); org.netbeans.modules.utilities/1 (1.6.2/010925); com.sun.forte4j.j2ee.lib/1 (1.0/010925); org.netbeans.modules.apisupport.lite/1 (0.1.2/010925); org.netbeans.modules.rmi/1 (1.3.2/010925); org.netbeans.modules.vcscore/1 (1.4.1.1/010925); org.netbeans.modules.cvsclient/1 (1.3.2/010925); org.netbeans.modules.vcs.advanced/1 (1.4.1.1/010925); org.netbeans.modules.vcs.cmdline/1 (1.7.1.1/010925); org.netbeans.modules.web.core/1 (1.2.2/010925); org.netbeans.modules.web.core.syntax/1 (1.2.2/010925); org.netbeans.modules.web.ie/1 (1.4/010925); org.netbeans.modules.web.tomcat/1 (1.2.2/010925); com.iplanet.iws.integ.forte/1 (1.1/200108081113)
    path="" :jsp: init
    [IDE-Exec] Executing:
    0 .= D:\JDK13~1.1_0\jre\..\bin\javac
    1 .= -g
    2 .= -encoding
    3 .= UTF8
    4 .= -classpath
    5 .= D:\WorkForte\system;D:\forte4j\system;D:\forte4j\beans\TimerBean.jar;D:\WorkForte\jspwork\Tomcat+3.2\50439630;D:\WorkForte\CDShopcart;D:\WorkForte\CDShopcart\WEB-INF\lib\dbtags.jar;D:\WorkForte\CDShopcart\WEB-INF\lib\ietags.jar;D:\WorkForte\jspwork\Tomcat+3.2\6fad47ea;D:\WorkForte\CDShopcart\WEB-INF\classes;D:\forte4j\modules\ext\persistence-rt.jar;D:\forte4j\modules\ext\AbsoluteLayout.jar;D:\forte4j\modules\ext\sql.jar;D:\forte4j\modules\ext\rowset.jar;D:\forte4j\lib\ext\jdbc20x.zip;D:\forte4j\lib\ext\servlet.jar;D:\forte4j\lib\ext\xerces.jar;D:\forte4j\modules\ext\webserver.jar;D:\forte4j\modules\ext\jasper.jar;
    6 .= D:\WorkForte\jspwork\Tomcat+3.2\6fad47ea\_0002fProductList_0002ejspProductList_jsp_1.java
    [IDE-Exec] Executing:
    0 .= D:\JDK13~1.1_0\jre\bin\java
    1 .= -cp
    2 .= D:\WorkForte\CDShopcart\WEB-INF\classes;D:\WorkForte\CDShopcart\WEB-INF\lib\dbtags.jar;D:\WorkForte\CDShopcart\WEB-INF\lib\ietags.jar;D:\WorkForte\CDShopcart;D:\WorkForte\CDShopcart\WEB-INF\classes;D:\WorkForte\CDShopcart\WEB-INF\lib\dbtags.jar;D:\WorkForte\CDShopcart\WEB-INF\lib\ietags.jar;D:\WorkForte\jspwork\Tomcat+3.2\50439630;D:\WorkForte\jspwork\Tomcat+3.2\6fad47ea;D:\WorkForte\system;D:\forte4j\beans\TimerBean.jar;D:\forte4j\lib\ext\jdbc20x.zip;D:\forte4j\lib\ext\servlet.jar;D:\forte4j\modules\ext\AbsoluteLayout.jar;D:\forte4j\modules\ext\persistence-rt.jar;D:\forte4j\modules\ext\rowset.jar;D:\forte4j\modules\ext\sql.jar;D:\forte4j\system;D:\forte4j\lib\locale\core_f4j.jar;D:\forte4j\lib\locale\core_f4j_ce.jar;D:\forte4j\lib\locale\core_f4j_ce_ja.jar;D:\forte4j\lib\locale\core_f4j_ja.jar;D:\forte4j\lib\locale\core_ja.jar;D:\forte4j\lib\locale\openide_f4j.jar;D:\forte4j\lib\locale\openide_ja.jar;D:\forte4j\lib\locale\updater_ja.jar;D:\forte4j\lib\core.jar;D:\forte4j\lib\openide-fs.jar;D:\forte4j\lib\openide-nodes.jar;D:\forte4j\lib\openide-util.jar;D:\forte4j\lib\openide.jar;D:\forte4j\lib\ext\locale\ddl_ja.jar;D:\forte4j\lib\ext\locale\logger_ja.jar;D:\forte4j\lib\ext\locale\rmi-ext_ja.jar;D:\forte4j\lib\ext\bsh-1_0-fj.jar;D:\forte4j\lib\ext\cmd.jar;D:\forte4j\lib\ext\cosnaming.jar;D:\forte4j\lib\ext\ddl.jar;D:\forte4j\lib\ext\fjscript.jar;D:\forte4j\lib\ext\flute.jar;D:\forte4j\lib\ext\fscontext.jar;D:\forte4j\lib\ext\idlcompilers.jar;D:\forte4j\lib\ext\jaas.jar;D:\forte4j\lib\ext\jaxp.jar;D:\forte4j\lib\ext\jh.jar;D:\forte4j\lib\ext\jndi.jar;D:\forte4j\lib\ext\ldap.jar;D:\forte4j\lib\ext\ldapbp.jar;D:\forte4j\lib\ext\logger.jar;D:\forte4j\lib\ext\nis.jar;D:\forte4j\lib\ext\openorb-1.0.2.jar;D:\forte4j\lib\ext\parser.jar;D:\forte4j\lib\ext\pbclient.jar;D:\forte4j\lib\ext\providerutil.jar;D:\forte4j\lib\ext\regexp.jar;D:\forte4j\lib\ext\rmi-ext.jar;D:\forte4j\lib\ext\rmiregistry.jar;D:\forte4j\lib\ext\sac.jar;D:\forte4j\lib\ext\sax2.jar;D:\forte4j\lib\ext\servlet.jar;D:\forte4j\lib\ext\xerces.jar;D:\forte4j\lib\ext\jdbc20x.zip;D:\JDK13~1.1_0\lib\dt.jar;D:\JDK13~1.1_0\lib\tools.jar;D:\forte4j\modules\registration.jar;D:\forte4j\modules\dd2beans.jar;D:\forte4j\modules\pointbase.jar;D:\forte4j\modules\ant.jar;D:\forte4j\modules\ext\ant-optional.jar;D:\forte4j\modules\docs\ant-manual.zip;D:\forte4j\modules\ext\ant.jar;D:\forte4j\modules\autoupdate.jar;D:\forte4j\modules\clazz.jar;D:\forte4j\modules\db.jar;D:\forte4j\modules\dbschema.jar;D:\forte4j\modules\debuggerCore.jar;D:\forte4j\modules\applet.jar;D:\forte4j\modules\toolsDebugger.jar;D:\forte4j\modules\jpdaDebugger.jar;D:\forte4j\modules\editor.jar;D:\forte4j\modules\ext\nb-editor.jar;D:\forte4j\modules\idl-syntax.jar;D:\forte4j\modules\filecopy.jar;D:\forte4j\modules\ext\ftpclient.jar;D:\forte4j\modules\html.jar;D:\forte4j\modules\httpserver.jar;D:\forte4j\modules\ext\webserver.jar;D:\forte4j\modules\extbrowser.jar;D:\forte4j\modules\image.jar;D:\forte4j\modules\jarpackager.jar;D:\forte4j\modules\java.jar;D:\forte4j\modules\ext\javac.jar;D:\forte4j\modules\ext\java-gj.jar;D:\forte4j\modules\persistence-ui.jar;D:\forte4j\modules\ext\persistence-rt.jar;D:\forte4j\modules\beans.jar;D:\forte4j\modules\corba.jar;D:\forte4j\modules\form.jar;D:\forte4j\modules\ext\AbsoluteLayout.jar;D:\forte4j\modules\javadoc.jar;D:\forte4j\modules\jndi.jar;D:\forte4j\modules\loggerModule.jar;D:\forte4j\modules\classfile.jar;D:\forte4j\modules\browser.jar;D:\forte4j\modules\ext\infobus.jar;D:\forte4j\modules\projects.jar;D:\forte4j\modules\properties.jar;D:\forte4j\modules\i18n.jar;D:\forte4j\modules\i18n-form.jar;D:\forte4j\modules\jdbc.jar;D:\forte4j\modules\ext\rowset.jar;D:\forte4j\modules\ext\sql.jar;D:\forte4j\modules\properties-syntax.jar;D:\forte4j\modules\text.jar;D:\forte4j\modules\usersguide.jar;D:\forte4j\modules\xml.jar;D:\forte4j\modules\xml-syntax.jar;D:\forte4j\modules\openidex.jar;D:\forte4j\modules\j2eeserver.jar;D:\forte4j\modules\utilities.jar;D:\forte4j\modules\locale\utilities_f4j.jar;D:\forte4j\modules\j2eelib.jar;D:\forte4j\modules\apisupport-lite.jar;D:\forte4j\modules\rmi.jar;D:\forte4j\modules\vcscore.jar;D:\forte4j\modules\javacvs.jar;D:\forte4j\modules\ext\cvslib.jar;D:\forte4j\modules\vcsgen.jar;D:\forte4j\modules\cvs.jar;D:\forte4j\modules\jsp.jar;D:\forte4j\modules\ext\jasper.jar;D:\forte4j\modules\jsp-syntax.jar;D:\forte4j\modules\jspie.jar;D:\forte4j\modules\jsp-tomcat.jar;D:\forte4j\modules\ext\tomcat-monitor.jar;D:\forte4j\modules\iplanet_wsae.jar
    3 .= org.netbeans.modules.web.tomcat.WebAppMain
    4 .= D:\WorkForte\system\tomcat\server.xml
    5 .= D:\WorkForte\system\tomcat
    *********** Exception occurred ************
    Sat Aug 02 12:08:13 BST 2003: org.netbeans.modules.extbrowser.NbBrowserException: RegOpenKeyEx() failed.
    Annotation: Could not access the URL through the external browser. Check the configuration in Tools | Options | Web Browsers.
    org.netbeans.modules.extbrowser.NbBrowserException: RegOpenKeyEx() failed.
         at org.netbeans.modules.extbrowser.NbDdeBrowserImpl.getBrowserPath(Native Method)
         at org.netbeans.modules.extbrowser.NbDdeBrowserImpl.access$600(NbDdeBrowserImpl.java:39)
         at org.netbeans.modules.extbrowser.NbDdeBrowserImpl$URLDisplayer.startBrowser(NbDdeBrowserImpl.java:364)
         at org.netbeans.modules.extbrowser.NbDdeBrowserImpl$URLDisplayer.run(NbDdeBrowserImpl.java:275)
         at java.lang.Thread.run(Thread.java:484)
         at org.netbeans.modules.extbrowser.NbDdeBrowserImpl.setURL(NbDdeBrowserImpl.java:181)
    [catch] at org.openide.awt.HtmlBrowser$1.run(HtmlBrowser.java:401)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:337)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
    *********** Exception occurred ************
    Sat Aug 02 12:08:49 BST 2003: java.lang.IllegalMonitorStateException: null
    java.lang.IllegalMonitorStateException
         at org.netbeans.core.execution.TaskThreadGroup.isProcessDead(TaskThreadGroup.java:111)
         at org.netbeans.core.execution.TaskThreadGroup.waitFor(TaskThreadGroup.java:119)
         at org.netbeans.core.execution.DefaultSysProcess.result(DefaultSysProcess.java:71)
    [catch] at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:124)

    This happened to me also (I'm using Windows XP though). It's because Forte doesn't know how to communicate with Explorer through DDE (at least on some peoples' systems). You can tell Forte to launch the browser through the command line, and that should work. To do this, go to Tools, Options, IDE Configuration, System, System Settings and choose External Browser (Command Line) from the dropdown. Then go to IDE Configuration, Server and External Tools, Web Browsers, External Browser (Command Line) and under Browser Executable write C:\Program Files\Internet Explorer\iexplore.exe URL (of course, use the appropriate path to iexplore.exe if it's not the one above). Or, you could just select Forte's internal Swing-based browser under System Settings, but it doesn't have as many features as Internet Explorer.

  • Diffrence Between Forte 6 and earlier compilers

    Hi,
    I am working on Porting the Code from Earlier Versions to Forte 6.0. Can somebody please help me in understanding what are the exact differences, What things should be talken care of ?

    Hi There,
    The best place to start is the C++ Migration Guide.
    You can find from:
    http://docs.sun.com/
    -select Compiler and Programming
    - select Forte Developer
    - select Developer 6 Update 2
    compiler Collection
    - Select C++ Migration Guide.
    I hope this will help.
    ....jagruti
    Developers Technical Support
    Sun Microsystems, http://www.sun.com/developers/support

  • Package CLASSPATH

    hi folks
    i have created classes and i want to put in a package let say com.isis.graphics so i created 3 folders in order in the package name and i puted my classes in the folder graphics and in every class first line is package com.isis.graphics.and i typed in the Autoexec.bat the followoing line
    set CLASSPATH=%CLASSPATH%;c:\com\isis\graphics the problem is when i'm trying to create a new class outside the package extending a class inside the package i get Compiler Error can any one till me why!? and How to det the CLASSPATH typed in the autoexec.bat in good way?
    Please Help

    Thnx Guys
    thnx Patrick
    it worked in the case of using creating a class using
    a text editor.but i meant that how can i use this
    package from tool under windows like Forte or
    JBuilder.i tried but the (Forte or JBuilder) issue an
    Error that he doesn't know where is the package
    com.isis.javaWith Forte you have to mount the directory or jar file. If you mount the root directory as has been suggested Forte will mount not only the directory /com/isis/java, but also all the other directories under /, which is not what you desire.
    Since you're relatively new at this I assume you out of desparation 'un-jarred' the isis distribution into your file system. So the best thing to do with Forte is to MOUNT THE original isis JAR archive. In future do not unjar third party packages. They waste your disk space and cause you to lose your way in your own file system.
    So for Forte you mount the jar file with the following menu selections: FORTE=>View=>Explorer=>...FileSystems=>MountJar.
    MountJar will be in the LocalMenu of (right-click the mouse over the item ->) 'FileSystems'.
    I am not looking at the JBuilder UI as I type so I cannot be explicit in my answer, but it has a more traditional menu facility for adding third-party libraries and archives. If you have your project already loaded, there should be a place where you can change its SETTINGS such as Debug CommandLine Options,SourcePath, ClassPath, Libraries and the like. Poke around and you will find the spot where you can add the isis jar file immediately after the Sun and Borland jar and zip files. If you have cleaned up the unjar directories, just create your own third-party directory where you plunk the isis jar file. Then update the Classpath to include that thrd party directory, and then finally add the isis librar jar file name into the extra library dialogue.
    if u have a way to do this i'll be gratefull
    and thnx anywayGood luck.
    Malome

  • C++ standard library

    I'm looking for the C++ standard library. On linux machines it can be found under /usr/lib/.../libstdc++.a
    I would really appreciate any help.
    TIA
    Geva

    Hi There,
    The C++ COmpiler includes a shared version of
    the C++ Standrad library. It is called
    libCstd.so.1.
    It is in /usr/lib directory.
    If you want to know more on C++ Standrad library, check out Chapter 13 of C++ User's Guide from
    http://docs.sun.com and select Forte Developer 6 Update 2 compiler collection.
    I hope this helps.
    .....jagruti
    Developers Technical Support
    Sun Microsystems, http://www.sun.com/developers/support

  • -lCrun -lCstd option with cc and ld issues

    Hi every one,
    I did a test which I use a C program client.c to call a C++ shared library libprintcpp.so. The shared lib compiled by:
    CC -G -c -Kpic libprint.cpp
    ld -b -G -B dynamic -lc -o libprintcpp.so libprint.o
    When I use:
    cc -o client client.c -L. -lprintcpp -lCstd -lCrun
    The client runs fine. The result is:
    From main
    From printstring
    But when I use:
    cc -c client.c
    ld -lc -o client client.o -L. -lprintcpp -L/opt/SUNWspro/lib -lCrun -L/opt/SUNWspro/WS6U1/lib -lCstd
    The result is:
    From main
    From printstring
    Segmentation Fault(coredump)
    After ran the program, I got a coredump file. I used "truss" to track the program, here is the part of the result:
    From main
    write(1, " F r o m m a i n\n", 10) = 10
    lseek(1, 0, SEEK_CUR) = 7926
    From printstring
    write(1, " F r o m p r i n t s t".., 17) = 17
    lseek(1, 0, SEEK_CUR) = 8023
    lseek(1, 0, SEEK_CUR) = 8055
    write(1, "\n", 1) = 1
    lseek(1, 0, SEEK_CUR) = 8113
    Incurred fault #6, FLTBOUNDS %pc = 0x00000008
    siginfo: SIGSEGV SEGV_MAPERR addr=0x00000008
    Received signal #11, SIGSEGV [default]
    siginfo: SIGSEGV SEGV_MAPERR addr=0x00000008
    *** process killed ***
    What was wrong? Did I missed some option in ld command? What do I need to do to use ld compile the program correctly?
    I am using SUN 5.7, Sun WorkShop 6 update 1 C++ 5.2 Patch 109508-06 2001/11/07.
    The source files:
    /* libprint.h */
    void printstring(char* str);
    /* client.c */
    #include "libprint.h"
    #include <stdio.h>
    void main()
    printf("From main\n");
    printstring("From printstring\n");
    /* libprint.cpp */
    #include <stdio.h>
    #include <iostream.h>
    // Thanks Josh for the extern "C"
    extern "C"
    void printstring(char* str)
    cout << str << "\n";
    Thanks again,
    Andy

    Hi There,
    I think the reference to document will help
    you more so I am giving you this link to
    refer.
    from http://docs.sun.com
    - select Compilers and Programming Tools
    - select Forte Developer 6 update 2 compiler collection
    - select C++ User's Guide
    and refer chapter 16 on Building Libraries.
    This chapter describes different scenrio
    for C and C++ and do's and don't.
    ....jagruti
    Developers Technical Support
    Sun Microsystems, http://www.sun.com/developers/support

  • RE: (forte-users) dynamic select & maxrowsparameter

    I thing this code should help:
    ** Accepts command string for dynamic query and **
    ** an empty array of BC to which the results **
    ** should be appended. Returns the filled BC **
    ** array. **
    l_dynamicStatement : DBStatementHandle;
    l_inputDescriptor : DBDataSet;
    l_outputDescriptor : DBDataSet;
    l_outputData : DBDataSet;
    l_intStatementType : integer;
    l_intRowType : integer;
    l_intNumRows : integer;
    l_intRowCount : integer = 0;
    l_result : BusinessClass = new;
    BEGIN
    -- Prepare SQL statement for query given command string
    l_dynamicStatement = self.GetDBSession().Prepare(
    commandString = p_strSql,
    inputDataSet = l_inputDescriptor,
    cmdType = l_intStatementType);
    -- Open Cursor
    l_intRowType = GetDBSession().OpenCursor(
    statementHandle = l_dynamicStatement,
    inputDataSet = l_inputDescriptor,
    resultDataSet = l_outputDescriptor);
    -- Fetch first row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    WHILE l_intNumRows > 0 DO -- If prev fetch returned a row
    -- Increment count of rows fetched
    l_intRowCount = l_intRowCount + 1;
    -- Check for excessive number of rows retrieved
    -- Then it checks if you want to throw a exception or
    -- just exit and return the result set.
    IF l_introwCount > p_intMaxRow THEN
    IF p_bThrowExcept THEN
    -- Shut the cursor down and remove prepared
    statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    // Raise exception
    -- Have to put code
    ELSE
    EXIT;
    END IF;
    END IF;
    -- Parse result from DBDataSet to subclass
    -- of BusinessClass
    l_result = parseResult(l_outputData);
    // Add row to array
    p_aryBC.AppendRow(l_result.Clone(deep=TRUE));
    // Fetch next row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    END WHILE;
    -- Shut the cursor down and remove prepared statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    EXCEPTION
    when e: GenericException do
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    raise e;
    END;
    return p_aryBC;
    ka
    Kamran Amin
    Framework, Inc.
    303 South Broadway
    Tarrytown, NY 10591
    (914) 631-2322x121
    [email protected]
    http://www.frameworkinc.com/
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Thursday, December 09, 1999 11:15 PM
    To: Will Chris
    Cc: [email protected]
    Subject: RE: (forte-users) dynamic select & maxrows parameter
    Think there's a mis-understanding. The maxrows I refer to is not SQL but a
    forte method parameter as in the following:
    dynStatement = self.DefaultDBSession.Prepare(commandString = sqlStatement
    ,inputDataSet = inputDescriptor
    ,cmdType = commandType);
    rowType = self.DefaultDBSession.Select(statementHandle = dynStatement
    ,inputDataSet = inputDescriptor
    ,resultDataSet = outputDescriptor
    ,maxrows = 100);
    the variable sqlStatement holds the "dynamic" select string.
    If I don't set maxrows I get a runtime error, as mentioned, it is running
    against Oracle.
    At 14:47 10/12/99 +1100, you wrote:
    We use Oracle and Rdb and we have dynamic and non-dynamic SQL. No
    combination of
    these demand a max rows clause.
    For example the following query works on both databases :
    lvLanguageCodesList : Array of LanguageCodes = new();
    begin transaction
    sql select Language_Code LanguageCode,
    Language_Nm LanguageNm,
    System_Control_YN SystemControlYN,
    Other_Language_YN OtherLanguageYN
    into :lvLanguageCodesList
    from SRD_LANGUAGE_CODES
    order by Language_Nm
    on session StudentRegistryDBSession;
    end transaction;
    if lvLanguageCodesList.items = 0 then
    return Nil;
    else
    return lvLanguageCodesList;
    end if;
    Indeed if we wanted to use max rows its a bit of a pain in the bum because
    Oracle and
    Rdb use different syntax to define the row limit. So our dynamic SQL
    'builder class'
    has to detect the database flavour and configure max rows accordingly(where
    we want to use
    it).
    I can only guess that the error you are getting is not assoicated to therow
    limit or is caused because of the database you are using ?
    Regards,
    Chris Will, Sydney, Australia
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Friday, 10 December 1999 14:33
    To: [email protected]
    Subject: (forte-users) dynamic select & maxrows parameter
    the help for DBSession.Select method says that the maxrows
    parameter is not
    required. Leaving it out does not give a compile error.
    However at runtime
    an error is got saying maxrows must be > 0.
    I am using a method that accepts a where clause as a
    parameter and am not
    really interested in what the number of rows will be.
    Should I be?
    Does anyone have any knowledge they can share on this one.
    Thanks.
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    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]
    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]
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    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]

    I thing this code should help:
    ** Accepts command string for dynamic query and **
    ** an empty array of BC to which the results **
    ** should be appended. Returns the filled BC **
    ** array. **
    l_dynamicStatement : DBStatementHandle;
    l_inputDescriptor : DBDataSet;
    l_outputDescriptor : DBDataSet;
    l_outputData : DBDataSet;
    l_intStatementType : integer;
    l_intRowType : integer;
    l_intNumRows : integer;
    l_intRowCount : integer = 0;
    l_result : BusinessClass = new;
    BEGIN
    -- Prepare SQL statement for query given command string
    l_dynamicStatement = self.GetDBSession().Prepare(
    commandString = p_strSql,
    inputDataSet = l_inputDescriptor,
    cmdType = l_intStatementType);
    -- Open Cursor
    l_intRowType = GetDBSession().OpenCursor(
    statementHandle = l_dynamicStatement,
    inputDataSet = l_inputDescriptor,
    resultDataSet = l_outputDescriptor);
    -- Fetch first row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    WHILE l_intNumRows > 0 DO -- If prev fetch returned a row
    -- Increment count of rows fetched
    l_intRowCount = l_intRowCount + 1;
    -- Check for excessive number of rows retrieved
    -- Then it checks if you want to throw a exception or
    -- just exit and return the result set.
    IF l_introwCount > p_intMaxRow THEN
    IF p_bThrowExcept THEN
    -- Shut the cursor down and remove prepared
    statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    // Raise exception
    -- Have to put code
    ELSE
    EXIT;
    END IF;
    END IF;
    -- Parse result from DBDataSet to subclass
    -- of BusinessClass
    l_result = parseResult(l_outputData);
    // Add row to array
    p_aryBC.AppendRow(l_result.Clone(deep=TRUE));
    // Fetch next row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    END WHILE;
    -- Shut the cursor down and remove prepared statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    EXCEPTION
    when e: GenericException do
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    raise e;
    END;
    return p_aryBC;
    ka
    Kamran Amin
    Framework, Inc.
    303 South Broadway
    Tarrytown, NY 10591
    (914) 631-2322x121
    [email protected]
    http://www.frameworkinc.com/
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Thursday, December 09, 1999 11:15 PM
    To: Will Chris
    Cc: [email protected]
    Subject: RE: (forte-users) dynamic select & maxrows parameter
    Think there's a mis-understanding. The maxrows I refer to is not SQL but a
    forte method parameter as in the following:
    dynStatement = self.DefaultDBSession.Prepare(commandString = sqlStatement
    ,inputDataSet = inputDescriptor
    ,cmdType = commandType);
    rowType = self.DefaultDBSession.Select(statementHandle = dynStatement
    ,inputDataSet = inputDescriptor
    ,resultDataSet = outputDescriptor
    ,maxrows = 100);
    the variable sqlStatement holds the "dynamic" select string.
    If I don't set maxrows I get a runtime error, as mentioned, it is running
    against Oracle.
    At 14:47 10/12/99 +1100, you wrote:
    We use Oracle and Rdb and we have dynamic and non-dynamic SQL. No
    combination of
    these demand a max rows clause.
    For example the following query works on both databases :
    lvLanguageCodesList : Array of LanguageCodes = new();
    begin transaction
    sql select Language_Code LanguageCode,
    Language_Nm LanguageNm,
    System_Control_YN SystemControlYN,
    Other_Language_YN OtherLanguageYN
    into :lvLanguageCodesList
    from SRD_LANGUAGE_CODES
    order by Language_Nm
    on session StudentRegistryDBSession;
    end transaction;
    if lvLanguageCodesList.items = 0 then
    return Nil;
    else
    return lvLanguageCodesList;
    end if;
    Indeed if we wanted to use max rows its a bit of a pain in the bum because
    Oracle and
    Rdb use different syntax to define the row limit. So our dynamic SQL
    'builder class'
    has to detect the database flavour and configure max rows accordingly(where
    we want to use
    it).
    I can only guess that the error you are getting is not assoicated to therow
    limit or is caused because of the database you are using ?
    Regards,
    Chris Will, Sydney, Australia
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Friday, 10 December 1999 14:33
    To: [email protected]
    Subject: (forte-users) dynamic select & maxrows parameter
    the help for DBSession.Select method says that the maxrows
    parameter is not
    required. Leaving it out does not give a compile error.
    However at runtime
    an error is got saying maxrows must be > 0.
    I am using a method that accepts a where clause as a
    parameter and am not
    really interested in what the number of rows will be.
    Should I be?
    Does anyone have any knowledge they can share on this one.
    Thanks.
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    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]
    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]
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    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]

  • Anyone using Select Enterprise for Forte?

    Subject says it all. We're contemplating using eith Select or Rational
    Rose.
    Thanks in advance
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Raymond captured my thoughts exactly. We were Select customers too and glad
    to be Rational customers now.
    -Martin
    Raymond Blum <[email protected]> on 03/04/99 11:30:56 PM
    Please respond to Raymond Blum <[email protected]>
    Reom
    To: [email protected], [email protected],
    [email protected], [email protected]
    cc:
    Subject: RE: Anyone using Select Enterprise for Forte?
    We were Select customers for a year and have switched to Rose. Select was
    both a buggy tool and a buggier company! Their upgrade to V6 completely
    changed the server requirements, pulling the rug out from under our feet.
    Features we were promised were not in the releases we were sent...
    Rose has been a godsend; the product has it's shortcomings but it is a level
    above Select in both functionality & robustness.
    The 3 times I've had to contact Rational tech support, they've been able to
    provide me with a solution. Select's tech support were unable to get their own
    product to work as advertised. ---Raymond
    We have been using Select for over 2 years but have kept a watchful eye on
    Rationals offering.
    They seem to leap frog each other and have various pros and cons. My
    personal bias is currently towards Rational Rose but you'll have to choose
    based upon your own needs.
    If you let me know what you need I can let you know what I think each tool
    offers.
    Cheers,
    Jez
    Jez Sygrove
    Application Architect
    PanCredit
    PS* Standard disclaimer: The opinions I express are not necessarily those of
    my employer.
    From: Robinson, Richard[SMTP:[email protected]]
    Reply To: Robinson, Richard
    Sent: 03 March 1999 18:29
    To: '[email protected]'
    Subject: Anyone using Select Enterprise for Forte?
    Subject says it all. We're contemplating using eith Select or RationalRose.
    Thanks in advance-
    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/>
    Sent from my PalmPilot.
    The best thing since the Mac Plus!
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • RE: (forte-users) Reporting tools/components for ForteApplications?

    Hi Robert,
    A good place to start when it comes to reporting is Forte Consulting. They
    have developed a tool called ReportKit, which is ActiveX integration with
    Seagate Software's Crystal Reports tool. Crystal is not really a three-tier
    tool (although, your Forte Consultant can probably set it up to mimic a
    three-tier tool), but it is a quick, easy way to get quality reports from
    your existing Forte applications. If you're interested, give your Forte
    Sales Rep (or, better still, your Forte Regional Consulting Director) a
    call. They can discuss pricing and scheduling. I've done several
    integration projects with Crystal, and I highly recommend ReportKit for
    small- to medium-sized reporting requirements. As for costs, I don't recall
    how much CrystalReports runs, but I think there are developer licenses and
    runtime licenses.
    FYI, the actual integration of ReportKit is pretty quick. The more
    time-consuming piece of any report tool integration is the design and
    implementation of the reports to be used.
    I hope this helps.
    -Katie
    Katie Tierney
    Quality Management Analyst
    Akili Systems Group
    601 Jefferson, Suite 3975
    Houston, Texas 77002
    Office: (713) 655-1400
    Cell: (409) 255-1643
    "The bitterness of poor quality remains long after the sweetness of low
    price is forgotten" --Larry Anderson
    -----Original Message-----
    From: Robert Brooke-N502365 [mailto:Robert.Brookeca.michelin.com]
    Sent: Monday, February 14, 2000 8:17 AM
    To: kamranaminyahoo.com
    Subject: (forte-users) Reporting tools/components for Forte
    Applications?
    Hi all,
    We are looking for what is currently in the marketplace to enhance the
    reporting
    capabilities of Forte. Ideally, we are looking for component libraries that
    we
    could import into our repository. Do these exist?
    Currently, I have found six reporting tools that are out there. The
    tools
    are Actuate, Crystal Reports, Report Workshop from Indus Consultancy
    Services, Brio Technologies (SQR) VisualBRIO, Visual CyberQuery from
    Cyberscience Corp., and Beacon from Brahma Software Solutions FORTify
    Components. Are there any others for Forte?
    If anyone is currently using one of these Reporting Tools for Forte or
    any
    others, could you give me any indications as to the costs, training, type
    of
    application using the Reporting tool, would you recommend using the
    product
    again, does it use wrappering or API, or is it a component based tool, and
    any
    other relevant information on the product?
    Thanks,
    Robert Brooke
    Application Developer
    Michelin North America (Canada) Inc. CA0/CA1
    PO Box 399
    New Glasgow, Nova Scotia
    B2H-3E6
    Phone: (902) 753-1977
    Fax: (902) 396-2180
    Note: We are currently developing in Forte 3.0.L.2. However, we would
    like
    to select a reporting tool/component within the next month. We are in the
    initial phases of our next project, an application to be developed
    in-house.
    Probably will have two databases, one for real-time data and another one
    for
    archived data. Probably will need reporting functionality and capabilities
    for
    both real-time data and archived data.
    This email and any files transmitted with it are confidential and
    intended solely for the use of the individual or entity to whom they
    are addressed. If you have received this email in error please notify
    the system manager.
    This footnote also confirms that this email message has been swept by
    MIMEsweeper for the presence of computer viruses.
    The E-Mail System is to be used for business purposes only.
    www.mimesweeper.com
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    At 09:33 AM 4/20/01, Rottier, Pascal wrote:
    Forte 4GL is:
    1) A language, TOOL (Compare to Java)
    2) An IDE (Compare to e.g. JBuilder or FJCE)
    3) A collaborative development environment, with central repository (Compare
    to ????)
    4) A distributed application server / object request broker (Compare to J2EE
    servers and/or CORBA)Let's not forget WebEnterprise, Express, and especially Fusion.
    I think, SUN is not al all interested in TOOL.If TOOL were just a language and had no market yet, you are probably
    right. But, not only is TOOL the key to the Forte environment, but it has
    an existing and profitable market. Sun still sells FORTRAN, after all, and
    continues to put money into ADE development for all its language
    products. The real kicker, though, is that I think iPlanet is very clear
    that Fusion, now iIS, is a very key product for them. There may be those
    who wish it were written in Java and who might lobby for doing a Java
    version, but it was clear at the conference that the iPlanet management
    recognize that Java just isn't up to the task at this point. It isn't as
    if all the iPlanet tools are actually written in Java, after all.
    They will only support them for as long as they need.Or, more likely, for as long as they make money.
    Now, in response to Microsofts .NET stratagy. We have yet to see how
    succesfull this will be, but I expect Microsoft to push this down the
    throats of developers and companies quite succesfully.Like they did DCOM?
    =========================================================================
    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

  • Re: Write-through caching in Forte

    Hello Mark,
    Just one point more. May be you can add an Event Notifier to the lock
    manager to send the new instance of Obj1 to the clients (here client2)
    who use it in their cache.
    Hope this helps.
    Daniel Nguyen.
    Mark S. Potts wrote:
    >
    Andrew
    This is a mixture of a cache strategy and object locking. If I
    understand what you have said I have some suggestions;
    The cache should hold copies of the object and the object should be
    returned to the client. The obect that is returned to the client should
    be version stamped ( optimistic locking ).
    A) Client1 request Obj1
    B) Obj1 is instantiated from the persistent store
    C) Obj1 is version stamped via a lock manager service.
    D) Obj1 is placed in the cache and copy returned to Client1
    Client1 can now work on Obj1
    When Client2 selects Obj2 - the cache size being 1 - the Obj1 is
    replaced with Obj2.
    Obj2 is selected stamped and returned to the client as per the steps
    above.
    When Client 2 now selects Obj1, no longer in the cache, the same steps
    need to be completed as above.
    The cache now contains the same version of Obj1 as give to Client1.
    Now the important part, becuase this is an optimistic locking strategy -
    two clients can have different version of the same object, it is only
    when the object is saved - returned to the persistent store, that the
    version stamp need to be checked. Lets say Client 2 saves before client
    1
    A) Client2 initiates a save on Obj1
    B) Obj1 checks the lock manger to see if anyone has saved a new version
    of Obj1 since it was selected.
    C) If there have been no saves of Obj1 since Obj1 was selected ie the
    version of Obj1 selected does not conflict with the last version saved -
    then save Obj1
    D) Update the version stamp for Obj1 via the Lock manager
    E) Update Obj1 in the cache.
    When Client1 now tries to save the version of Obj1 a conflict will
    result and an exception needs to be raised - and if necessary the new
    version of Obj1, from the cache, returned to Client1.
    The version control can be done more easily if you are prepared to do
    the locking in the database - I do not recommend this for a number of
    well documented reasons.
    However if you choose this alternative instead of using a seperate Lock
    manager you could simply time stamp the row in the database iether on
    that table or a separate lock table and when saving the Obj1 check the
    time stamp on the object against the time stamp on the row. If they are
    the same save the object and update the time stamp to the current time (
    granularity of time stamp determined by number of concurrent users and
    usage patterns ). The time stamp on the row acts as the version stamp
    for the object and is selected into the object as a private attribute at
    time of selection.
    Hope this is of some help.
    Mark Potts
    SCAFFOLDS Product Manager
    Sage IT Partners
    A) Client1 requests Obj1.
    B) Obj1 is instantiated from a persistent store and placed in the cache
    and a reference to Obj1 is
    returned to Client1.
    C) As part of the instantiation of Obj1 the object is version stamped
    through a lock manager service.
    C) Client1 modifies the state of Obj1 trough its reference.
    D) Client2 requests Obj2.
    E) Obj2 is de-serialized, placed in the cache, knocking out Obj1, and a
    reference to Obj2 is returned to Client2.
    F) Client2 requests Obj1. Since it is no longer in the cache, we either
    need to de-serialize Obj1 from some persistent store, in which case we
    now have two out of sync copies of Obj1, or we need to give Client2 the
    reference to the Obj1 that Client1 has.
    Faibishenko, Andrew wrote:
    Has anyone out there been successful at implementing a cache which
    maintains updateable objects.
    Due to financial considerations, we cannot buy an off-the-shelf
    framework.
    What we are trying to build is some kind of object persistence
    mechanism
    and the cache would be a layer in that service.
    Our big issue is maintaining consistency within the cache, for
    multiple
    clients performing updates to an object.
    Example:
    A) Client1 requests Obj1.
    B) Obj1 is de-serialized, placed in the cache and a reference to Obj1
    is
    returned to Client1.
    C) Client1 modifies the state of Obj1 trough its reference.
    D) Client2 requests Obj2.
    E) Obj2 is de-serialized, placed in the cache, knocking out Obj1, and
    a
    reference to Obj2 is returned to Client2.
    F) Client2 requests Obj1. Since it is no longer in the cache, we
    either
    need to de-serialize Obj1 from some persistent store, in which case we
    now have two out of sync copies of Obj1, or we need to give Client2
    the
    reference to the Obj1 that Client1 has.
    Is this something we should ask Forte Consulting about?
    -Andy
    ============================================
    Andy Faibishenko (312)251-3267
    Senior Consultant (800)462-6301
    Metamor Technologies, Inc. [email protected]

    Hello Mark,
    Just one point more. May be you can add an Event Notifier to the lock
    manager to send the new instance of Obj1 to the clients (here client2)
    who use it in their cache.
    Hope this helps.
    Daniel Nguyen.
    Mark S. Potts wrote:
    >
    Andrew
    This is a mixture of a cache strategy and object locking. If I
    understand what you have said I have some suggestions;
    The cache should hold copies of the object and the object should be
    returned to the client. The obect that is returned to the client should
    be version stamped ( optimistic locking ).
    A) Client1 request Obj1
    B) Obj1 is instantiated from the persistent store
    C) Obj1 is version stamped via a lock manager service.
    D) Obj1 is placed in the cache and copy returned to Client1
    Client1 can now work on Obj1
    When Client2 selects Obj2 - the cache size being 1 - the Obj1 is
    replaced with Obj2.
    Obj2 is selected stamped and returned to the client as per the steps
    above.
    When Client 2 now selects Obj1, no longer in the cache, the same steps
    need to be completed as above.
    The cache now contains the same version of Obj1 as give to Client1.
    Now the important part, becuase this is an optimistic locking strategy -
    two clients can have different version of the same object, it is only
    when the object is saved - returned to the persistent store, that the
    version stamp need to be checked. Lets say Client 2 saves before client
    1
    A) Client2 initiates a save on Obj1
    B) Obj1 checks the lock manger to see if anyone has saved a new version
    of Obj1 since it was selected.
    C) If there have been no saves of Obj1 since Obj1 was selected ie the
    version of Obj1 selected does not conflict with the last version saved -
    then save Obj1
    D) Update the version stamp for Obj1 via the Lock manager
    E) Update Obj1 in the cache.
    When Client1 now tries to save the version of Obj1 a conflict will
    result and an exception needs to be raised - and if necessary the new
    version of Obj1, from the cache, returned to Client1.
    The version control can be done more easily if you are prepared to do
    the locking in the database - I do not recommend this for a number of
    well documented reasons.
    However if you choose this alternative instead of using a seperate Lock
    manager you could simply time stamp the row in the database iether on
    that table or a separate lock table and when saving the Obj1 check the
    time stamp on the object against the time stamp on the row. If they are
    the same save the object and update the time stamp to the current time (
    granularity of time stamp determined by number of concurrent users and
    usage patterns ). The time stamp on the row acts as the version stamp
    for the object and is selected into the object as a private attribute at
    time of selection.
    Hope this is of some help.
    Mark Potts
    SCAFFOLDS Product Manager
    Sage IT Partners
    A) Client1 requests Obj1.
    B) Obj1 is instantiated from a persistent store and placed in the cache
    and a reference to Obj1 is
    returned to Client1.
    C) As part of the instantiation of Obj1 the object is version stamped
    through a lock manager service.
    C) Client1 modifies the state of Obj1 trough its reference.
    D) Client2 requests Obj2.
    E) Obj2 is de-serialized, placed in the cache, knocking out Obj1, and a
    reference to Obj2 is returned to Client2.
    F) Client2 requests Obj1. Since it is no longer in the cache, we either
    need to de-serialize Obj1 from some persistent store, in which case we
    now have two out of sync copies of Obj1, or we need to give Client2 the
    reference to the Obj1 that Client1 has.
    Faibishenko, Andrew wrote:
    Has anyone out there been successful at implementing a cache which
    maintains updateable objects.
    Due to financial considerations, we cannot buy an off-the-shelf
    framework.
    What we are trying to build is some kind of object persistence
    mechanism
    and the cache would be a layer in that service.
    Our big issue is maintaining consistency within the cache, for
    multiple
    clients performing updates to an object.
    Example:
    A) Client1 requests Obj1.
    B) Obj1 is de-serialized, placed in the cache and a reference to Obj1
    is
    returned to Client1.
    C) Client1 modifies the state of Obj1 trough its reference.
    D) Client2 requests Obj2.
    E) Obj2 is de-serialized, placed in the cache, knocking out Obj1, and
    a
    reference to Obj2 is returned to Client2.
    F) Client2 requests Obj1. Since it is no longer in the cache, we
    either
    need to de-serialize Obj1 from some persistent store, in which case we
    now have two out of sync copies of Obj1, or we need to give Client2
    the
    reference to the Obj1 that Client1 has.
    Is this something we should ask Forte Consulting about?
    -Andy
    ============================================
    Andy Faibishenko (312)251-3267
    Senior Consultant (800)462-6301
    Metamor Technologies, Inc. [email protected]

  • RE: (forte-users) appdist copy from VMS to NT question...

    Well, there are some graphic FTP clients for windows that allow
    you to get files from FTP-servers using simple drag and drop.
    Most of them even support the option of selecting a directory
    and dragging it, with all its subdirectories, to your local drive
    with a single mouse action.
    The only problem might be with binary vs. text files. The appdist
    directory has both filetypes. Getting text files as if they were
    binary files may cause problems. Getting binary files as if they
    were text certainly will cause problems. So, either get the
    whole tree binary and hope for the best. Or get each file indi-
    vidually and set the correct bin or asc setting. Or use a tool
    that is smart enough to see if a file is binary or text and hope
    it doesn't make any mistakes.
    Pascal Rottier
    STP - MSS Support & Coordination Group
    Philip Morris Europe
    e-mail: [email protected]
    Phone: +49 (0)89-72472530
    +++++++++++++++++++++++++++++++++++
    Origin IT-services
    Desktop Business Solutions Rotterdam
    e-mail: [email protected]
    Phone: +31 (0)10-2428100
    +++++++++++++++++++++++++++++++++++
    Don't meddle in the affairs of dragons
    'cause you're crunchy and taste good with ketchup
    -----Original Message-----
    From: Haben, Dirk [SMTP:[email protected]]
    Sent: Wednesday, December 08, 1999 6:32 AM
    To: 'Soapbox Forte Users'
    Subject: (forte-users) appdist copy from VMS to NT question ...
    G'day Folxs
    Does anyone here have a simple way to copy a whole appdist tree for myapp1
    say from VMS to NT? I have created a new environment on a NT box and want
    to
    copy down all our application distributions.
    eg:
    On OpenVMS machine vmsbox1 the directory tree and files
    vmsbox1::forte_root:[appdist.aenv_myapp_cl3...]*.*;
    should go to NT machine ntbox1
    [ntbox1] d:\temp\myapp\cl3\...
    Even just to d:\temp\aenv_myapp_cl3\... will do.
    ftp doesn't seem to do the trick here. Of cause I could write some routine
    to put/get file by file - but before I do all that I thought I ask around
    if
    it's already been done.
    Thanks,
    Dirk
    PS: Needless to say we still develop and makedist on VMS - for now (see
    Bulletin 388)!
    PPS: No I haven't forgotten about [appdist.aenv.myapp1]*.ace
    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]

    Well, there are some graphic FTP clients for windows that allow
    you to get files from FTP-servers using simple drag and drop.
    Most of them even support the option of selecting a directory
    and dragging it, with all its subdirectories, to your local drive
    with a single mouse action.
    The only problem might be with binary vs. text files. The appdist
    directory has both filetypes. Getting text files as if they were
    binary files may cause problems. Getting binary files as if they
    were text certainly will cause problems. So, either get the
    whole tree binary and hope for the best. Or get each file indi-
    vidually and set the correct bin or asc setting. Or use a tool
    that is smart enough to see if a file is binary or text and hope
    it doesn't make any mistakes.
    Pascal Rottier
    STP - MSS Support & Coordination Group
    Philip Morris Europe
    e-mail: [email protected]
    Phone: +49 (0)89-72472530
    +++++++++++++++++++++++++++++++++++
    Origin IT-services
    Desktop Business Solutions Rotterdam
    e-mail: [email protected]
    Phone: +31 (0)10-2428100
    +++++++++++++++++++++++++++++++++++
    Don't meddle in the affairs of dragons
    'cause you're crunchy and taste good with ketchup
    -----Original Message-----
    From: Haben, Dirk [SMTP:[email protected]]
    Sent: Wednesday, December 08, 1999 6:32 AM
    To: 'Soapbox Forte Users'
    Subject: (forte-users) appdist copy from VMS to NT question ...
    G'day Folxs
    Does anyone here have a simple way to copy a whole appdist tree for myapp1
    say from VMS to NT? I have created a new environment on a NT box and want
    to
    copy down all our application distributions.
    eg:
    On OpenVMS machine vmsbox1 the directory tree and files
    vmsbox1::forte_root:[appdist.aenv_myapp_cl3...]*.*;
    should go to NT machine ntbox1
    [ntbox1] d:\temp\myapp\cl3\...
    Even just to d:\temp\aenv_myapp_cl3\... will do.
    ftp doesn't seem to do the trick here. Of cause I could write some routine
    to put/get file by file - but before I do all that I thought I ask around
    if
    it's already been done.
    Thanks,
    Dirk
    PS: Needless to say we still develop and makedist on VMS - for now (see
    Bulletin 388)!
    PPS: No I haven't forgotten about [appdist.aenv.myapp1]*.ace
    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]

  • The Sun is down and I can't get Forte for Java (?)

    What's up here. I REQUIRE the newest version of Forte for Java as an IDE for JDK 1.4. The version that I have currently is over a year old. Everytime I select it from the "Products & APIs", I get a message:
    Portions of sun.com are temporarily undergoing maintenance.
    How long is this going to last? It's been unavailable for the last 10 hours (from my standpoint) and my project is at a screeching halt because of it (and since Borland has decided to soak me dry if I want a 'good' version of JBuilder that supports 1.4).
    Not only is the project being squeezed inbetween an old version of the JDK and a just-released version, which not only will require uninstallation of the old and installation of the new, but will hopefully not break the project, requiring code changes.
    Robert Templeton

    Okay, I finally found it. Java.sun.com needs to update its product link to "SUN ONE" since it no longer goes by "Forte for Java". Talk about a lack of internal communication.
    Robert Templeton

  • Dynamic RadioList selection

    I am building a radio list dynamically in TOOL code based upon certain
    criteria. I can get the list built no problem. But, I want to "select" a
    certain element based on an attribute I check on the object. So the element
    I want to appear selected may be element 2 or element 5 or element x. Has
    anyone ever done this? I can't seem to find anything in the Forte help that
    will allow me to do this?? Any help would be greatly appreciated.
    Thanks!!
    Doug Scurr
    HealthPartners
    8100 34th Avenue South
    Minneapolis, MN 55440-1309
    (612)883-7317
    [email protected] <[email protected]>

    Dale,
    I knew it would be something easy!! I obviously can't read very well!!
    Thanks for the help!!
    Doug Scurr
    HealthPartners
    8100 34th Avenue South
    Minneapolis, MN 55440-1309
    (612)883-7317
    [email protected] <[email protected]>
    -----Original Message-----
    From: Dale V. Georg [SMTP:[email protected]]
    Sent: Tuesday, April 27, 1999 2:34 PM
    To: [email protected]
    Cc: [email protected]
    Subject: Re: Dynamic RadioList selection
    > [email protected] wrote:
    >
    > I am building a radio list dynamically in TOOL code based upon
    certain
    > criteria. I can get the list built no problem. But, I want to
    "select" a
    > certain element based on an attribute I check on the object. So
    the element
    > I want to appear selected may be element 2 or element 5 or element
    x. Has
    > anyone ever done this? I can't seem to find anything in the Forte
    help that
    > will allow me to do this?? Any help would be greatly appreciated.
    > Thanks!!
    This should be as simple as setting the IndexValue of the radio list
    to
    the item that you want to have selected. For example:
    self.<theRadioList>.IndexValue = 2;
    to select the second item. Make sure your window is already open
    when
    you do this, though. ie, make sure self.Open() has already been
    called. The Open() method initializes a lot of the widget
    information
    on the window, and it may well set the index value of the radio list
    back to 1.
    Hope this helps,
    Dale
    ===================================
    Dale V. Georg
    Senior Systems Analyst
    Indus Consultancy Services
    [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/>

  • Sun ONE Studio 4 aka Forte: How to set the output path for classes ?

    Help !
    Beginner's question:
    Sun ONE Studio 4 aka Forte:
    How to set the output path for classes ?
    As default, the class files are created in the same directory as the
    sources.
    In opposite, both JBuilder and Together support that there is a tree
    with the sources and another tree with the classes.
    The first answer I got was "not possible with Forte, but just if you write your own "ANT Build script" !
    a) Please point me to a ready-to-use ANT script for this purpose, if such is available
    b) Is using ANT instead of the MAKE as comfortable ? Besides the separation of sourcecode and classes, I would like to keep everything else to be the same, i.e. I don�t want to edit the ANT file if I enlarge the project by directories or files.
    Tia
    Sincerely
    Rolf

    You can set S1S's options to place newly created .class files in a specific location.
    Identify the compiler that is being used - Open the S1S's Tools/Options window, expand Editing and select Java Sources. Note the Default Compiler value. (If it's one if the Ant options, you use Ant to specify this option, not S1S.)
    Open the S1S's Tools/Options window, expand Building/Compiler Types and select the appropriate compiler.
    The Properties tab of the compiler has the property Target, which sets the filesystem where the compiler output is directed. If you choose <not set>, the .class files are written to their source directory.
    When you set the Target, your change affects all classes that use this compiler.
    Very few options can't be set in S1S; the challenge is finding out where they're set!

Maybe you are looking for