Re: (forte-users) Minimal Fusion

Thomas,
A response which may contain no answers...and may lead to more questions...
As a novice fusion user, one of the largest obstacles to using Fusion is the lack of XML API's in an application, be it a customer's in-house or vendor's software product. Corresponding to this is simply the lack of any API's in the application. As Forte (abet Sun, now iPlanet) says in their training manual 'A nontrivial task is to build new adapters for your programs if you wish to enable them to interact using XML documents over HTTP'. This is probably an understatement.
The question that come to mind is:
Does the warehouse have published API's their product?
If not, then, IMHO, you have steep hill to climb, not the least being communication, cooperation, and coordination from the warehouse vendor (another one of those 'nontrivial tasks') in trying to create the required API's
if so, then it is a matter of building an adapter, in a language that is compatible with the warehouse's API (hopefully C or some derivation of) , that contains (1) a DOM (Document Object Module) to API Translator, (2) an XML Parser (converts XML to DOM and visa-versa) , and (3) a HTTP server (again, another one of those 'nontrivial tasks').
Forte (abet Sun, now iPlanet) suggests, and I would concur (with reservations), that if you haven't done this before you should probably hire their services from the Forte Integration Services group. Their costs (admittible high) should be offset be the time it would take to develop one on your own. A side benefit is working with them, you learn the process for making other adapters in the future. If Fusion is a marketing success, then the benefits should out weigh the costs.
The Forte Integration Services group markets, or will market, a Fusion Adapter Designer, some sort of a SDK, which assists in the creation of Adapters. I do not know the availability of that product at this time.
As to your question "Is it reasonable to consider doing this project under Fusion as a
getting-feet-wet experience?" If you (or your customer) can afford the costs, and the warehouse has published API's, I would say that you gotta get-your-feet-wet somehow. If the warehouse doesn't have published API's and are not willing to put forth the effort and resources to do so, I would say your chances of success are considerably less.
In any case, IMHO, it will be a 'non trivial' undertaking.
-later
-labeaux
"Thomas Mercer-Hursh, Ph.D." <thomascintegrity.com> 10/31/00 04:49PM >>>This may be one of those questions which has no answer, but ...
Our long term plan is to develop XML APIs to each of the modules in our
suite of non-Forte applications and to integrate these under Fusion, thus
gaining Conductor management of the inter-module work flows and a cleaner
loose coupling of the applications along with other benefits such as the
ease of integration with other packages, a clean way to migrate to Forte
modules, and an ease of interconnecting "mini-applications" to address
specific customer needs.
I have an existing customer who has made a decision to migrate to a third
party warehouse from an in-house warehouse. I.e., were this transition to
the new structure complete, this would correspond to unhooking some of our
modules and replacing these with an adapter to the corresponding modules in
the third party warehouse.
In fact, as it looks now, I will need to build the logical equivalent of
these APIs anyway -- might as well do it in XML, right? And these APIs
will communicate with a daemon responsible for the message traffic to and
from. I tried to get this traffic to be XML and to use MQSeries or JMS as
the transport, but the folks at the warehouse end don't seem to be able to
handle such things, so I am stuck doing something fairly stupid for the
actual communication.
So, the question for those out there who have already paid their Fusion
dues, is it reasonable to consider doing this project under Fusion as a
getting-feet-wet experience. There are only half a dozen APIs to do and I
have to do those anyway and am inclined to make them XML regardless. There
will be one communication daemon to which all these connect and the
business processes originally implemented in Conductor will basically be
just point to point connects, except for routing traffic from the daemon to
the right API based on message type. That's really all I need it to do,
i.e., far too simple to actually need Fusion, but a possible opportunity
to get started and then to expand to other uses.
Crazy?
=========================================================================
Thomas Mercer-Hursh, Ph.D email: thomascintegrity.com
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
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 07:55 AM 11/1/00, Labeaux Schiek wrote:
As a novice fusion user, one of the largest obstacles to using Fusion is
the lack of XML API's in an application, be it a customer's in-house or
vendor's software product.In this case, the good news is that one of the applications in question is
our own, so whipping up an XML API to suit each required transaction on
that side is no more, probably less, work than importing or exporting a
flat file or whatever. Moreover, my current expectation of how this
interaction will work is something like this:
</pre>
---Fusion------
| |
WACS<-->WACS_Daemon<----VPN socket
connection---->IS_Daemon I/S
</pre>
I.e., I/S, our application, and the IS_Daemon which handles the connection
traffic across the internet link are both mine. For I/S, I will create XML
APIs to suit. For the IS_daemon, I might use the transform facilities to
convert this XML to the pipe-delimited format they are expected at the
other end and make the daemon a simple manager of the connection or, the
daemon could do the conversion, but the former seems like the more
appropriate approach. The API between the two daemons is something we are
defining now (unfortunately I lost the argument to make that XML).
Corresponding to this is simply the lack of any API's in the
application. As Forte (abet Sun, now iPlanet) says in their training
manual 'A nontrivial task is to build new adapters for your programs if
you wish to enable them to interact using XML documents over HTTP'.My neophyte understanding is that, since I am defining the API to I/S in
the diagram above and I can make this XML, then the adapter issue
disappears there. I might have to create an adapter for the daemon, but if
necessary, I could make that the same XML on a pass through and do the
translation in the daemon.
If not, then, IMHO, you have steep hill to climb, not the least being
communication, cooperation, and coordination from the warehouse vendor
(another one of those 'nontrivial tasks') in trying to create the required
API'sWe are well through this process anyway. ... which is not to say that it
has been or will be easy, but it must be done whether I use Fusion or
not. Given that the vote has gone in favor of simple messages of
pipe-delimited records, i.e., basically flat file, the technical issues
there are minimal.
if so, then it is a matter of building an adapter, in a language that is
compatible with the warehouse's API (hopefully C or some derivation of) ,
that contains (1) a DOM (Document Object Module) to API Translator, (2)
an XML Parser (converts XML to DOM and visa-versa) , and (3) a HTTP server
(again, another one of those 'nontrivial tasks').I'm not sure I quite understand what you are saying here. The HTTP part
won't be there since we will apparently be connecting via a VPN sockets
connection. But, how are you distinguishing DOM and XML since DOM is a
particular form of XML? The XML API I build for I/S will be DOM compliant.
Forte (abet Sun, now iPlanet) suggests, and I would concur (with
reservations), that if you haven't done this before you should probably
hire their services from the Forte Integration Services group. Their
costs (admittible high) should be offset be the time it would take to
develop one on your own. A side benefit is working with them, you learn
the process for making other adapters in the future. If Fusion is a
marketing success, then the benefits should out weigh the costs.I am familiar with the "party" line. If I were building a complete
interface to another major product (I/S is roughly equivalent to JDEC in
coverage) in the context of an EAI project, I would happily invite them in
and hope to pick up pointers. Here, though, there are only 8 or 9 total
transaction types and either all of the interfaces are XML, i.e., no
adapter required as I understand it, or only the daemon will need an
adapter and that will be a choice I can make depending on how things
go. One does wish it were possible to sample a small piece of that
knowledge store without having to buy the whole thing, though.
The Forte Integration Services group markets, or will market, a Fusion
Adapter Designer, some sort of a SDK, which assists in the creation of
Adapters. I do not know the availability of that product at this time.Last I checked, one couldn't get this without the consulting ... hence the
last sentence above.
Thanks for your input.
=========================================================================
Thomas Mercer-Hursh, Ph.D email: thomascintegrity.com
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

Similar Messages

  • RE: (forte-users) Minimizing a Window when it lossesfocus...

    This is an easy way of achieving what you want
    self.window.displaystate=DS_ICONIZED; -- minimise calling window
    ETUMainWin().display(); -- instanciate and pass modal
    control to new widow
    self.window.displaystate=DS_NORMAL; -- un-minimise calling window when
    sub-window closed
    Chris Will, DET, Sydney, Australia

    Hi Sylvain
    Try using window.smallIconImage =
    ImageData(<TitleBarIcon>.ImageValue) ;
    This should work.
    Jairaj Rampershad
    System Concultant
    --- Sylvain_Por&eacute;e <Sylvain.Poreesophia.sema.fr>
    wrote:
    Hi Forte Gurus,
    I have tried to set an icon using this statement :
    window.SmallIconImage =
    aIconFile.<TitleBarIcon>.imagevalue;
    where <TitleBarIcon> is a PictureGraphic in my
    window workshop.
    I have tried 16*16 16 colours as well as many other
    arrangements. It does
    not work. I use windows NT.
    Any ideas ?
    Thanks
    Sylvain
    PS : For info (forte help):
    SmallIconImage
    Data Type ImageData
    Source Class Window
    Settable? Yes
    The SmallIconImage attribute (ImageData) provides
    the small icon to be used
    when the window is iconized, for example, in the
    task bar. The image size
    for a small icon should be 16 by 16 pixels. Although
    the image will be
    scaled if you provide one of a different size, for
    best results, we
    recommend that you create your icons in the same
    size in which they will be
    displayed.
    Windows 95/NT only
    This feature is available on Windows 95/NT only. On
    other platforms, the
    attribute is ignored.
    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

  • Re: (forte-users) Fusion for the VAR

    Hi,
    It is a good idea. In fact, I think that how Forte is
    going to integrate her own suite of app. too. ( I
    kind of recall that there is a speech on this topic in
    Forum ).
    However, as Forte will most likely goes toward Java, I
    would suggest that you take into account the
    abstraction on Conductor ( which is frankly an event
    broker ) and Fusion ( which handles the XML mapping )
    too. In doing so, you can save guard your investment
    on the design without binding tightly with FORTE and I
    bet there will be tons of event broker or XML parser
    in the future market.
    On the other hand, this integration by Fusion would be
    perfect for a perfect world. But, in this imperfect
    world, it would be hard to do cross-checking between
    apps in Fusion.
    In the old days, we repulicate data or do file
    transfer to integrate apps. In doing so, we also
    build-in all the cross-checking procedure / reports.
    In the case of Fusion, is there such a safety net to
    save guard data integrity. Can I identify a lost
    event and trace back to find out whether it is a app.
    problem or Conductor problem?
    I think the customer would surely like to know.
    Regards,
    Peter Sham.
    --- "Thomas Mercer-Hursh, Ph.D."
    <[email protected]> wrote:
    Fusion has been positioned as an EAI tool, something
    at which it appears to
    be very, very good, but in recent months I have been
    thinking about its
    possible role as an architectural tool for those of
    us who build large,
    multi-application suites of applications. Having
    been tossing some of
    these ideas around the halls at Harrison Street, I
    thought I would try some
    of them on this audience as well to see what
    reaction I got.
    This concept is based on the context that one has
    multiple interacting
    applications which are loosely coupled, or at least
    which should be. E.g.,
    an order processing application may need credit
    status information from an
    accounts receivable application and may generate
    invoices which then need
    to be tracked for payment by that application, but
    the connections between
    these applications are specific, limited, and
    readily enumerable. Mind
    you, people don't always build their applications so
    cleanly modularized,
    but I think we all agree these days that they should
    be.
    The idea is to provide each application with a
    specific API, which it may
    currently have only indirectly. I.e., today one
    might simply have calls
    directly from one application to another, but one
    would gather all these
    links together and define an API, probably in XML
    which covered all of the
    necessary communciations between applications.
    These would then be used to
    build a Fusion Proxy and one would build the
    necessary Conductor processes
    to handle the communications which previously might
    have been made directly
    between applications. There is probably some
    performance loss in this
    process, but many of these interfaces are not
    performance intensive and my
    bet is that if the whole Fusion concept has adequate
    performance for the
    purposes for which it is being primarily marketed,
    then it has the
    performance for this sort of usage.
    One would get several advantages from this
    structure:
    1) Interapplication communications would be handled
    by a Conductor process
    and thus be much more readily configurable than any
    hard-coded link.
    2) One would gain the ability to unplug one's own
    application and plug in a
    customer's application when the customer insisted on
    using something else.
    3) The discipline of working in this structure would
    insure clean boundries
    between applications, which is not only sound
    design, but promotes the
    flexibility of the overall suite.
    4) Those with untransitioned legacy applications
    would have a framework
    that would allow a mixture of new and old
    applications to co-exist, thus
    providing them with a transition strategy until the
    full product line was
    converted.
    Note that I am assuming that one would want to build
    the individual
    applications so that they also used Conductor for
    managing their business
    process logic, but that seems to me to be an
    independent decision from this
    one.
    So, comments?
    Any downsides?
    Any added benefits I haven't covered here?
    Are there many out there that would benefit from
    this approach or just a few?
    Is anyone doing anything like this?
    Note that the one downside I have found so far is
    that Fusion licensing,
    independent of the Conductor aspect, is based on the
    number of proxies and
    so someone like CI who has 15 or more applications
    in a typical site is
    going to have 15 or more proxies. My bet is that
    this can be handled once
    it is clear that use of Fusion by a VAR for
    integrating own applications is
    not the same use as by an end-user integrating
    arbitrary multiple applications.
    =========================================================================
    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
    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]
    =====

    Yes, they do & one page is 1KB page. We use the same instrument to check
    memory usage & to send alerts in our production system.
    Thanks.
    Suraj
    -----Original Message-----
    From: Epari, Madhusudhan [mailto:[email protected]]
    Sent: Monday, May 14, 2001 2:37 PM
    To: 'Saraf, Suraj'; 'Forte User Forum'
    Subject: RE: (forte-users) Instrument for memory used in the partition
    Thanks all for the response. I observed "Allocated Pages" instrument doesn't
    change as and when memory usage by the partition changes. I was trying to
    find a way to measure the actual memory (specifically in bytes or KBs).
    Thanks,
    Madhu
    -----Original Message-----
    From: Saraf, Suraj [mailto:[email protected]]
    Sent: Thursday, May 10, 2001 12:46 PM
    To: 'Epari, Madhusudhan'; 'Forte User Forum'
    Subject: RE: (forte-users) Instrument for memory used in the partition
    Hello,
    I think you can use 'OperatingSystem' service agent & check 'AllocatedPages'
    instrument to see how many memory pages are used. You can compare that with
    your maximum allocation & send alerts depending on that. Thanks.
    Suraj
    -----Original Message-----
    From: Epari, Madhusudhan [mailto:[email protected]]
    Sent: Thursday, May 10, 2001 11:15 AM
    To: 'Forte User Forum'
    Subject: (forte-users) Instrument for memory used in the partition
    Hello Everyone,
    Is there an instrument to track the memory used in the partition at a given
    point of time. I have a requirement where an alert has to be generated in
    the environment when partition uses all its available memory.
    Thanks in advance,
    Madhu
    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: [email protected]

  • Re: (forte-users) Question-Minimizing Windows onstartup

    I am not sitting in front of a Win95 machine currently, but I think I
    remember a setting on the Shortcut tab in the Properties notebook about the
    application, that allows you to Run the app either as 'Normal Window',
    'Minimized', or 'Maximized.'
    /\/\ark
    ----- Original Message -----
    From: "Will Perkinson" <perkinson.willtowerautomotive.com>
    To: "Forte Usergroup" <kamranaminyahoo.com>
    Sent: Wednesday, March 01, 2000 10:31 AM
    Subject: (forte-users) Question-Minimizing Windows on startup
    How do you minimize the ftexec window when starting the client on a
    Windows 95 platform?
    The application starts but leaves the forte ftexec window open in the
    background. Is there a way to hide this window or minimize it on
    startup?
    Thank you,
    Will Perkinson
    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

    I am not sitting in front of a Win95 machine currently, but I think I
    remember a setting on the Shortcut tab in the Properties notebook about the
    application, that allows you to Run the app either as 'Normal Window',
    'Minimized', or 'Maximized.'
    /\/\ark
    ----- Original Message -----
    From: "Will Perkinson" <perkinson.willtowerautomotive.com>
    To: "Forte Usergroup" <kamranaminyahoo.com>
    Sent: Wednesday, March 01, 2000 10:31 AM
    Subject: (forte-users) Question-Minimizing Windows on startup
    How do you minimize the ftexec window when starting the client on a
    Windows 95 platform?
    The application starts but leaves the forte ftexec window open in the
    background. Is there a way to hide this window or minimize it on
    startup?
    Thank you,
    Will Perkinson
    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

  • 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: (forte-users) Forte ADE

    In addition to this confusion, I'd like to see some statement by Forte to
    indicate
    WHEN the next Forte R4 is scheduled (before the Sun era is was said to be
    Summer 2000) and
    WHAT exactly it will contain (major headings will do).
    With the cancellation of the Forte Forum event doubt and uncertainty are
    spreading in the
    Forte communities that I talk with and no one seems to counterbalance these
    doubts with an
    official statement. How serious does Sun take TOOL Forte for the coming few
    years? Release
    of Fusion V2 seems to say "serious". The deafning silence with regard to R4
    indicates the
    opposite. And the users are divided (as always).
    Theo de Klerk
    Architecture & Application Integration
    Professional Services
    Compaq Computer Corp. - the Netherlands
    -----Original Message-----
    From: Rottier, Pascal [mailto:Rottier.Pascalpmintl.ch]
    Sent: Tuesday, 18 April, 2000 17:49
    To: 'kamranaminyahoo.com'
    Subject: (forte-users) Forte ADE
    A long, long time ago
    In a galaxy far away....
    I saw a demonstration of Forte's new Application Development
    Environment,
    which was more userfriendly than the current one. It also looked more
    similar to the interface of the other development tools out
    there, with a
    tree structure and capabilities to browse through the
    inheritance tree, and
    not opening a new window for every project, class and method that is
    accessed.
    This new interface was supposed to be included in Forte 4, which would
    combine TOOL and Java and would be released soon.
    Since then, we've seen SynerJ and now FJEE, but Forte 4 is still not
    released. And when it will be released, it still won't
    support TOOL and Java
    simultaneously. That's OK. I understand that.
    But now I've heard that this improved ADE won't even be
    included in Forte 4.
    Is this true? And if so, why?
    Pascal
    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

    You may be interested in the following which comes from a statement of direction
    recently issued by Sun.
    Product Context
    + Fort&eacute; 4GL is an award-winning, proven product with many unique advantages for
    building
    enterprise business systems that are distributed, that involve the integration
    of existing
    business systems as well as new functionality, and that target heterogeneous
    runtime
    environments.
    + Fort&eacute; 4GL is recognized by Gartner Group as the most successful Enterprise
    Application
    Development Tool.
    + Forte 4GL has a substantial customer base that has been successful with the
    product and that
    looks forward to using Fort&eacute; 4GL for new applications.
    + The Sun Microsystems, Inc. (SMI) development tools group (formerly Fort&eacute;
    Software, Inc.)
    has a strong internal commitment to Fort&eacute; 4GL. Fort&eacute; Fusion is written with, and
    is currently
    being enhanced with Fort&eacute; 4GL.
    + SMI has retained the Fort&eacute; field sales organization as an independent unit
    whose primary
    product offerings are Fort&eacute; 4GL and Fort&eacute; Fusion. Continued volume sales of
    Fort&eacute; 4GL
    remain the foundation of our business plan.
    Product Future
    + We intend to actively enhance and promote Fort&eacute; 4GL for the indefinite
    future.
    + We believe Fort&eacute; 4GL will flourish in the long term, especially if we are
    able to harness the
    considerable selling power of the entire SMI field sales organization. To make
    the product
    more attractive and easier to sell, we will continue to make the product more
    modular and
    easier to integrate with heterogeneous software environments.
    + We believe that the best opportunity for attracting new customers is to
    leverage the ability of
    Fort&eacute; 4GL to easily build powerful shared business services (server components)
    that can be
    accessed by non-Fort&eacute; clients (e.g., browsers, Java clients) and that can easily
    integrate with
    new and existing business systems.
    + We believe that Fort&eacute; 4GL?s continued success is enhanced by continuing to
    issue small and
    frequent product releases. Our target is two such releases per year.
    + There is a great potential for our three product lines (Fort&eacute; 4GL, Fort&eacute;
    Fusion, and Fort&eacute; for
    Java) to complement and reinforce each other. Interoperability among the three
    product lines
    is seen as a critical success factor for Fort&eacute; 4GL.
    Forte 4GL Statement of Direction Page 2
    Sun Microsystems, Inc Proprietary and Confidential
    Product Priorities
    1. Interoperability with third party software components
    + External (non-4GL) client support (e.g., browsers, Java clients)
    + External server integration (e.g., messaging, component support, data
    exchange)
    2. Enhanced productivity
    + Increased automation (i.e., less coding)
    + Support for platform updates (e.g., new versions of OS, DBMS)
    3. TOOL code to Java code migration
    4. Unified developer look and feel with other Forte development products
    5. Common repository
    Short Term Product Plans
    Mid-year release
    + New features available as ?preview? per the standard Forte maintenance
    release procedures
    + Tentatively labeled ?release 3.5? and distributed as a free product
    enhancement for
    customers under maintenance
    + Scheduled for Summer 2000
    + Defining features
    + Introspection (reflection) ? the ability for an object to describe itself at
    runtime
    + Improved integration with applications developed using Fort&eacute;-for-Java
    Community
    Edition
    + Platform support improvements to track important operating system and
    database
    vendor activity
    + Target features
    + Display system enhancements (e.g., Motif 2 support, line arrowheads, window
    refresh control, editable outline fields)
    + Dynamic library loading
    + Improved CORBA/IIOP support
    + Improved XML and XSLT class support
    + JMQ support
    New year release
    + New features available as ?preview? per the standard Forte maintenance
    release procedures
    + Tentatively labeled ?release 3.6? and distributed as a free product
    enhancement for
    customers under maintenance
    + Scheduled for year end 2000
    + Defining features
    + Any Release 3.5 target features that were not included in 3.5
    + Generation of EJB interfaces for R3 service objects
    + Platform support improvements to track important operating system and
    database
    vendor activity
    + Target features
    + COBOL record handling as part of the OS390 transaction adaptor
    + Improved runtime security
    + Interface classes for access to Netscape Server 4.0 and possibly other web
    servers
    Long Term Product Plans
    + To be determined by customer and market feedback.
    + A major criterion for new functionality will be enhancing the revenue
    generating ability of
    the product, thereby fostering its long-term health in the marketplace.
    + Substantial emphasis will be placed on creating new capabilities that enhance
    the
    attractiveness of the product for new users.
    + The contents of Release 3.7 (or whatever it will be called) will be
    solidified just after release
    3.5 ships. Subsequent planning visibility will be two forward releases.
    "Klerk, Theo de" <Theo.de.Klerkcompaq.com> on 04/18/2000 12:27:36 PM
    To: "'Rottier, Pascal'" <Rottier.Pascalpmintl.ch>,
    "'kamranaminyahoo.com'" <kamranaminyahoo.com>
    cc: (bcc: Charlie Shell/Bsg/MetLife/US)
    Subject: RE: (forte-users) Forte ADE

  • RE: forte-users-digest V1 #322

    Re: "We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated." from Van Vuong
    <[email protected]>
    This was in regards to copying a set of object from a server to client.
    An implicit clone is being done. This also copyies objects they want to
    remain on the server.
    I believe the normal method of doing this is to anchor the server side
    objects. Then when the deep clone occurs, it stops at the anchored
    objects generating a proxy. That can also have other affects you do not
    want but will at least stop the copying.
    From: owner-forte-users-digest
    Sent: Tuesday, April 15, 1997 8:09 AM
    To: forte-users-digest
    Subject: forte-users-digest V1 #322
    forte-users-digest Tuesday, 15 April 1997 Volume 01 :
    Number 322
    How does deep copy apply to arrays?
    Re: Global Variables
    Re: Global Variables
    Using the Edit commands in a menu
    Re: Global Variables
    Re: How does deep copy apply to arrays?
    From: Van Vuong <[email protected]>
    Date: Mon, 14 Apr 1997 17:16:46 -0500
    Subject: How does deep copy apply to arrays?
    I have a service object that has a method that returns an array of
    objects. The return type for the method is defined with the copy option.
    I found documentation that states that the copy option creates a deep
    copy of the return variable on the partition that called the method.
    My question is: If the return type for the method is an array of
    objects, will the copy option create copies of all objects/elements in
    the array?
    We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated.
    Thanks in advance,
    Van Vuong
    Phone: 972.985.5289
    Pager: 972.320.2232
    VoiceNow Pager: 972.330.0822
    E-mail: [email protected]
    PAGE NET
    From: David Bell <[email protected]>
    Date: Mon, 14 Apr 1997 22:44:19 +0000
    Subject: Re: Global Variables
    I got so much mail about and the object location manager, so
    I'll continue ...
    To make the thing truly portable, regardless of partition,
    you need to register the object with a name that is made
    up on the fly.
    The easisest way to do this is to make up a name composed of
    nodename (hopefully unique) plus the process ID. This should
    guarantee that you get to the correct object even if there are
    several instances around.
    Get the nodename from the operating system, then use the partition
    agent to ask for the PID. Form a unique name by concatenating these
    two piecies of information.
    // set up this app's subdirectory namespace
    ObjName : TextData = new(Value = '/MyApp/');
    // add nodename
    ObjName.Concat(task.part.operatingsystem.nodename);
    // get PID
    Partition : ActivePartitionAgent
    = ActivePartitionAgent(task.part.ActPartAgent);
    Instrument : ConfigValueInst
    = ConfigValueInst(Partition.FindInstrument('ProcessID'));
    // add PID to name
    Objname.Concat(Instrument.GetData.TextValue);
    Now register an anchored object with the object location
    manager
    // get the object location manager
    olm : ObjectLocationMgr;
    olm = task.Part.ObjectLocationMgr;
    // register my object with the name
    olm.RegisterObject(name = Objname, object = MyObj);
    Once it's registered, ask the object location manager for a handle
    so we can use it. Build the name, get hold of the object
    location manager, as above, then invoke BindObject on it.
    theObj =
    (ClassOfMyObj)(olm.BindObject(name=Objname, classType=ClassOfMyObj));
    If the names are formed in the same way, this call should return
    a handle to the object of message duration - you can set up
    session or transaction duration if required in the RegisterObject
    call.
    In some versions of Forte, before V.2.F.0, this call not work for
    objects located in the same partition.
    To get at the instruments, you will need to include the SystemMonitor
    Library.
    To come back to some other points, as Tom Wynant points out, you can
    have a user visible service object in a server partition.
    The problem comes when what you really want is the same user visible
    service object in lots of different partitions so that you can offer
    the same service - but locally.
    Today there is no way to do this oustide of client partitions without
    resorting to something similar to that presented above.
    - David
    David Bell Tel : +44 1344 482100
    Voice mail : +44 1344 353716
    Forte Software Limited Mobile : +44 378 300613
    Apex House
    London Road Email : mailto: [email protected]
    Bracknell Web : http://www.forte.com
    Berkshire
    RG12 2XH
    UK
    From: Pierre Gelli <[email protected]>
    Date: Tue, 15 Apr 1997 09:09:39 +0200
    Subject: Re: Global Variables
    Hello folks,
    Here is my idea on the topic.
    Although one normally doesn't need global variables in a OO system, there
    are cases when it's useful : a read cache of data available in the local
    active partition. This saves the overhead of accessing the data on a
    remote=
    SO.
    I read the solutions described by David Bell (location manager) and David
    Krieger (hack of the partition.appTitle).
    There is another way I think is a bit cleaner.
    It takes benefit of the fact that a custom system agent can be attached
    an
    object (in our case the local cache containing the global variables).
    Any active partition of the application then contains one such custom
    agent.
    Any class needing a global variable instantiates a small object, which is
    a
    manager of the custom agent. Its purpose is to ask the active partition
    for
    the custom agent, and then for the cache. If the agent doesn't exist it
    creates it as well has the local cache; if the agent exists, it returns
    the
    cache.
    There is a cache class.
    It is derived into one class to be the "cache server" broadcasting an
    event
    when some cache data changes. This class is used to create a cache
    server=
    SO.
    The cache class is also derived into a "local cache" class. It knows how
    to
    initialize it from the cache server. It listens to the event for updating
    its local data from the cache server SO when needed.
    Enough for the machinery.
    Then, for any instance of a class that needs a global variable,
    only two lines of code are needed, at initialization time, to get a
    reference to the local cache of the partition, then a global variable
    isaccessed as if part of a local object. This is quite affordable.
    This design guaranties that there is automatically one and only one
    up-to-date cache object in any active partition (running on a client or
    on a
    server). The local cache is seen as a local object by all objects that
    use
    it (no SO there). This design makes no assumption on the partitioning
    that
    will take place later. Which is I think one key strength of Fort=E9.
    If one is interested I can ship some code that illustrates these ideas.
    Hope this helps.
    Pierre Gelli
    ADP GSI
    Payroll and Human Resources Management
    72-78, Grande Rue, F-92310 SEVRES
    phone : +33 1 41 14 86 42 (direct) +33 1 41 14 85 00 (reception desk)
    fax : +33 1 41 14 85 99
    From: Bryan Gentile <[email protected]>
    Date: Tue, 15 Apr 1997 09:01:35 -0400
    Subject: Using the Edit commands in a menu
    I was wondering if anyone knows how to code for the edit menu submenu
    items
    like cut, copy, and paste. I am trying to use these in my menu, but I
    cannot find anything about how to code for them. Is there anything in
    the
    help or any examples to look at. I have been unsuccessful in finding
    anything about this.
    Thanks
    From: [email protected]
    Date: Tue, 15 Apr 1997 9:08:01 -0400 (EDT)
    Subject: Re: Global Variables
    [email protected] writes:
    <Snip!>
    Unfortunately all Forte Service Objects share a single name
    space. I thought from the documentation that User Visible
    Service Objects would work for me. However, when I tried User
    Visible Service Objects, they didn't quite do the trick because
    what I wanted was identically named service objects that resolve
    to a different local instance for each partition.You're right. You can put the user-visible service object in any
    partition you like, but it must go in one and only one
    partition. Rats. I can see why it's this way (based on the
    minimal implementation of the name server), but I can think of
    some good reasons why it shouldn't be. In fact, I may need to
    move some methods around based on this discussion. Again, rats!
    Tom Wyant
    "The greatest danger of communication is the illusion that it has
    occurred." (wish I knew who said that!).
    From: [email protected]
    Date: Tue, 15 Apr 1997 09:54:10 -0500
    Subject: Re: How does deep copy apply to arrays?
    Copy option always copies deep. Remember, also if you pass the array
    accross partitions, whether you specify copy or not, it is going to copy
    and copy deep.
    In an array, I am not sure if have the problem, because unless the array
    in-turn holds a huge tree, the array object may be wide, but not deep.
    Some thing to think about??
    Venkat
    End of forte-users-digest V1 #322
    *********************************

    Re: "We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated." from Van Vuong
    <[email protected]>
    This was in regards to copying a set of object from a server to client.
    An implicit clone is being done. This also copyies objects they want to
    remain on the server.
    I believe the normal method of doing this is to anchor the server side
    objects. Then when the deep clone occurs, it stops at the anchored
    objects generating a proxy. That can also have other affects you do not
    want but will at least stop the copying.
    From: owner-forte-users-digest
    Sent: Tuesday, April 15, 1997 8:09 AM
    To: forte-users-digest
    Subject: forte-users-digest V1 #322
    forte-users-digest Tuesday, 15 April 1997 Volume 01 :
    Number 322
    How does deep copy apply to arrays?
    Re: Global Variables
    Re: Global Variables
    Using the Edit commands in a menu
    Re: Global Variables
    Re: How does deep copy apply to arrays?
    From: Van Vuong <[email protected]>
    Date: Mon, 14 Apr 1997 17:16:46 -0500
    Subject: How does deep copy apply to arrays?
    I have a service object that has a method that returns an array of
    objects. The return type for the method is defined with the copy option.
    I found documentation that states that the copy option creates a deep
    copy of the return variable on the partition that called the method.
    My question is: If the return type for the method is an array of
    objects, will the copy option create copies of all objects/elements in
    the array?
    We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated.
    Thanks in advance,
    Van Vuong
    Phone: 972.985.5289
    Pager: 972.320.2232
    VoiceNow Pager: 972.330.0822
    E-mail: [email protected]
    PAGE NET
    From: David Bell <[email protected]>
    Date: Mon, 14 Apr 1997 22:44:19 +0000
    Subject: Re: Global Variables
    I got so much mail about and the object location manager, so
    I'll continue ...
    To make the thing truly portable, regardless of partition,
    you need to register the object with a name that is made
    up on the fly.
    The easisest way to do this is to make up a name composed of
    nodename (hopefully unique) plus the process ID. This should
    guarantee that you get to the correct object even if there are
    several instances around.
    Get the nodename from the operating system, then use the partition
    agent to ask for the PID. Form a unique name by concatenating these
    two piecies of information.
    // set up this app's subdirectory namespace
    ObjName : TextData = new(Value = '/MyApp/');
    // add nodename
    ObjName.Concat(task.part.operatingsystem.nodename);
    // get PID
    Partition : ActivePartitionAgent
    = ActivePartitionAgent(task.part.ActPartAgent);
    Instrument : ConfigValueInst
    = ConfigValueInst(Partition.FindInstrument('ProcessID'));
    // add PID to name
    Objname.Concat(Instrument.GetData.TextValue);
    Now register an anchored object with the object location
    manager
    // get the object location manager
    olm : ObjectLocationMgr;
    olm = task.Part.ObjectLocationMgr;
    // register my object with the name
    olm.RegisterObject(name = Objname, object = MyObj);
    Once it's registered, ask the object location manager for a handle
    so we can use it. Build the name, get hold of the object
    location manager, as above, then invoke BindObject on it.
    theObj =
    (ClassOfMyObj)(olm.BindObject(name=Objname, classType=ClassOfMyObj));
    If the names are formed in the same way, this call should return
    a handle to the object of message duration - you can set up
    session or transaction duration if required in the RegisterObject
    call.
    In some versions of Forte, before V.2.F.0, this call not work for
    objects located in the same partition.
    To get at the instruments, you will need to include the SystemMonitor
    Library.
    To come back to some other points, as Tom Wynant points out, you can
    have a user visible service object in a server partition.
    The problem comes when what you really want is the same user visible
    service object in lots of different partitions so that you can offer
    the same service - but locally.
    Today there is no way to do this oustide of client partitions without
    resorting to something similar to that presented above.
    - David
    David Bell Tel : +44 1344 482100
    Voice mail : +44 1344 353716
    Forte Software Limited Mobile : +44 378 300613
    Apex House
    London Road Email : mailto: [email protected]
    Bracknell Web : http://www.forte.com
    Berkshire
    RG12 2XH
    UK
    From: Pierre Gelli <[email protected]>
    Date: Tue, 15 Apr 1997 09:09:39 +0200
    Subject: Re: Global Variables
    Hello folks,
    Here is my idea on the topic.
    Although one normally doesn't need global variables in a OO system, there
    are cases when it's useful : a read cache of data available in the local
    active partition. This saves the overhead of accessing the data on a
    remote=
    SO.
    I read the solutions described by David Bell (location manager) and David
    Krieger (hack of the partition.appTitle).
    There is another way I think is a bit cleaner.
    It takes benefit of the fact that a custom system agent can be attached
    an
    object (in our case the local cache containing the global variables).
    Any active partition of the application then contains one such custom
    agent.
    Any class needing a global variable instantiates a small object, which is
    a
    manager of the custom agent. Its purpose is to ask the active partition
    for
    the custom agent, and then for the cache. If the agent doesn't exist it
    creates it as well has the local cache; if the agent exists, it returns
    the
    cache.
    There is a cache class.
    It is derived into one class to be the "cache server" broadcasting an
    event
    when some cache data changes. This class is used to create a cache
    server=
    SO.
    The cache class is also derived into a "local cache" class. It knows how
    to
    initialize it from the cache server. It listens to the event for updating
    its local data from the cache server SO when needed.
    Enough for the machinery.
    Then, for any instance of a class that needs a global variable,
    only two lines of code are needed, at initialization time, to get a
    reference to the local cache of the partition, then a global variable
    isaccessed as if part of a local object. This is quite affordable.
    This design guaranties that there is automatically one and only one
    up-to-date cache object in any active partition (running on a client or
    on a
    server). The local cache is seen as a local object by all objects that
    use
    it (no SO there). This design makes no assumption on the partitioning
    that
    will take place later. Which is I think one key strength of Fort=E9.
    If one is interested I can ship some code that illustrates these ideas.
    Hope this helps.
    Pierre Gelli
    ADP GSI
    Payroll and Human Resources Management
    72-78, Grande Rue, F-92310 SEVRES
    phone : +33 1 41 14 86 42 (direct) +33 1 41 14 85 00 (reception desk)
    fax : +33 1 41 14 85 99
    From: Bryan Gentile <[email protected]>
    Date: Tue, 15 Apr 1997 09:01:35 -0400
    Subject: Using the Edit commands in a menu
    I was wondering if anyone knows how to code for the edit menu submenu
    items
    like cut, copy, and paste. I am trying to use these in my menu, but I
    cannot find anything about how to code for them. Is there anything in
    the
    help or any examples to look at. I have been unsuccessful in finding
    anything about this.
    Thanks
    From: [email protected]
    Date: Tue, 15 Apr 1997 9:08:01 -0400 (EDT)
    Subject: Re: Global Variables
    [email protected] writes:
    <Snip!>
    Unfortunately all Forte Service Objects share a single name
    space. I thought from the documentation that User Visible
    Service Objects would work for me. However, when I tried User
    Visible Service Objects, they didn't quite do the trick because
    what I wanted was identically named service objects that resolve
    to a different local instance for each partition.You're right. You can put the user-visible service object in any
    partition you like, but it must go in one and only one
    partition. Rats. I can see why it's this way (based on the
    minimal implementation of the name server), but I can think of
    some good reasons why it shouldn't be. In fact, I may need to
    move some methods around based on this discussion. Again, rats!
    Tom Wyant
    "The greatest danger of communication is the illusion that it has
    occurred." (wish I knew who said that!).
    From: [email protected]
    Date: Tue, 15 Apr 1997 09:54:10 -0500
    Subject: Re: How does deep copy apply to arrays?
    Copy option always copies deep. Remember, also if you pass the array
    accross partitions, whether you specify copy or not, it is going to copy
    and copy deep.
    In an array, I am not sure if have the problem, because unless the array
    in-turn holds a huge tree, the array object may be wide, but not deep.
    Some thing to think about??
    Venkat
    End of forte-users-digest V1 #322
    *********************************

  • RE: (forte-users) RE: Forte' vs J2EE

    Hi Alexandra,
    1) Forte 4GL and FJEE (Forte for Jave Enterprise Edition) are tools.
    2) TOOL and Java are languages.
    3) TOOL is proprietary and Java is public.
    4) J2EE is a proposed, Java-based achitecture. Not a tool, not a language,
    not a standard.
    5) J2EE looks a lot like the architecture already supported by Forte 4GL,
    however J2EE is explicetaly based on Java, EJB, JSP, JDBC and Servlets.
    There are 3 versions of Forte for Java. The "Consumer Edition (CE)", the
    "Internet Edition (IE)" and the "Enterprise Edition (EE)". CE is really a
    remake of "NetBeans" and can be downloaded for free. IE and EE do not exist
    yet. However, EE should be a remake of SynerJ, Forte's first Java tool.
    You quoted someone who was very negative about Forte. I don't think that's
    deserved. He's probably someone who simply didn't manage to understand the
    tool. However, he is right in complaining about the support of Forte 4GL.
    And it's true that the version people are currently using is at least more
    than 2 years old and outdated. Since this period, there have been some
    bugfixes, but hardly any real improvements.
    From the description of your application, I would really advise to use Forte4GL. However, the lack of improvements, new releases, press releases, etc.
    has me worried about the future of that product.
    One of the real disadvantages of Java is performance. Java is very slow and
    requires very heavy hardware to perform acceptably. Swing is a GUI framework
    based on Java, which is notoriously slow even by Java standards. FJCE
    development GUI is based on Swing. Download this product, install it and run
    it and you'll see what I mean.
    Forte applications can run in 2 modes. Interpreted or compiled. If they're
    compiled, they're turned into platform dependent executables, which perform
    really well. If they're interpreted, they're running inside a Forte Virtual
    Machine, which performs less well, but still very acceptable. Java
    applications run only in Java Virtual Machines and perform far less.
    I would use Forte server side and Forte client side. For the browsers, I
    would simply use any available tool to build webpages and use CGI to
    interface with Forte. I would not try to use a different client side tool
    that should communicate to a Forte server side.
    Express is a good tool for developing CRUD (Create Read Update Delete)
    applications based on an existing, and relatively static, database model. I
    don't know about Rapport. However, don't be fooled into believing that
    Express makes it easier for unexperienced developers to build Forte
    applications. If anything, it makes it harder. A common look and feel can
    easily be achieved by agreeing on the look and feel of windows during the
    design-phase, and have all developers conform to this standard. It really
    isn't that hard. Just don't create very large window class trees. That
    causes strange behaviour.
    Pascal Rottier
    Atos Origin Nederland (BAS/West End User Computing)
    Tel. +31 (0)10-2661223
    Fax. +31 (0)10-2661199
    E-mail: Pascal.Rottiernl.origin-it.com
    ++++++++++++++++++++++++++++
    Philip Morris (Afd. MIS)
    Tel. +31 (0)164-295149
    Fax. +31 (0)164-294444
    E-mail: Rottier.Pascalpmintl.ch
    -----Original Message-----
    From: Alexandra Macedo [mailto:ammeasysoft.pt]
    Sent: Tuesday, December 05, 2000 3:55 PM
    To: forte-users
    Subject: (forte-users) RE: Forte' vs J2EE
    Alexandra I presume.
    Excuse me for asking but isn't J2EE just a STANDARD? And Forte aprogramming
    language that may or may not adhere to that standard?
    Now to the question, if the C++ experience is good - what's wrong withusing
    C++?
    Do you need to build component based distributed systems? Then hire saytwo
    experienced architects - to design a practical model (UML perhaps).
    Are there already good systems around you could tailor for your needs?
    Just a few questions that need to be addressed to make an informeddecision.
    What business are you in (your team/company)? If it's not IT then ask
    yourself why do it inhouse?
    Regards,
    Dirk
    PS: What country and from where is the Forte support? You mean peoplecode
    in a language other than English?----------------------------------------------------------------------
    Well, Fort&eacute; is certainly not a programming language, TOOL is the
    language for the Fort&eacute; 4GL environment.
    J2EE is a standard, and there are already some Application servers
    that
    implement it (as I was told, webSphere, Iplanet and weblogic,
    sorry if I am missing someone).
    I really do not know the standard, and I am not sure it says it will
    have to be implemented in Java, but all these 3 application servers
    do it in Java...
    The C++ experience is only from part of the team, and is not from
    Database applications, the type of application we are doing is not
    well suited to do in C++, we all agree, C++ is out of the question.
    I have received many answers (not posted in this mailling list
    unfortunatly) telling me that Java is best, others told me Fort&eacute; is
    good Java is just a promise, but they really did not know Java
    very well, someone even said:
    Forte 4GL sucks terribly. It is not supported well by what
    is left of 'Forte the company'.
    The tools for this proprietary environment suck.
    No distributed debugging or profiling!
    There is really no adequate profiling support at all
    Avoid Forte like the plague that it is.
    Any way, a Fort&eacute; person told us that Fort&eacute; is good, precisely, for
    our kind of application, and as some people made more questions about
    it, I am explaining better our application:
    - We are doing this application because we are an IT company, our
    job is to make and sell back-office applications for the finance
    sector (accounting, third-party, bank management, credit
    management), now we want to make one application with all of these.
    In simple terms we can define it as an ERP for Credit Operations.
    - The users will be in-house except for a small set of
    functionalitty, which will be available through browsers.
    The front-end should run in an ordinary PC running WINDOWS (we
    were told that Java is too heavy and PC's should have at least 256Mb
    RAM, which, I believe, is to much for all our clients)
    If this is true, it puts Java clients (with Swing) or Java applets out,
    HTML, we believe is not powerfull enough for all the interface.
    The server, will have to work well with about 300 simultaneous
    internal users, plus some Web ones (do not know how many)
    The application must be multi-lingual, that is, it should be easy to
    put it in any language.
    The application is based on a big database, with more than 500
    tables, some with about 100 columns, some with millions of records.
    - We want to be sure that the application will have the same layout
    (look and feel) in every screen, so it will be nice something to
    generate code or to create similar functionality (table screens,
    for instance) in an automatic way ( that is why we are considering
    Express for it). Of course this will help also the maintenance of
    the sources.
    Our questions are:
    FORT&Eacute; or JAVA for the server-side.
    Which tool for the client-side?
    Which framework to use?
    -Express or Rapport from albion if using Fort&eacute;?
    -Are there any good frameworks for Java ?
    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

    Gabriel,
    I disagree with you on one very important point. You say it's nearly
    impossible to predict anything about the future in ICT-world, so it's better
    to not predict at all and only look at the here and now. Here and now, Forte
    is better than Java. So, the best choice would be Forte.
    But you also mention that Forte is best suited for big projects. Big
    applications usually have a long lifetime. Many of the current Forte
    applications are the legacy systems of tomorrow. While all the VB, Access,
    ASP and Java crap that's being produced will be replaced within 6 to 18
    months, Forte applications will live for years.
    Migrating such large applications to a new environment, even if this
    environment is using a similar technology, requires very high investments.
    Companies will want to avoid this as much as possible. So, they'll want to
    invest in technology that can evolve with the rest of the world. As
    operatingsystems change, databases change, middleware architectures become
    obsolete (DCE) and new ones are created (EJB), end user interfaces evolve
    (from text to GUI to Web), requirements change (data-oriented,
    process-oriented, eCommerce), etc.
    Of course, flexibility is not only achieved through technology. A good
    design is probably more important.
    Managers, not developers, will have to make the strategic decisions about
    where to spend their millions. So, they have to look at the future, no
    matter how hard that is. At the moment, Forte is still superior, even though
    it hasn't been truly improved for over 2 years and that's pretty impressive.
    Java is still very "hyped" and no one knows what's going to happen to it.
    But the future of Java looks much brighter than the future of Forte. If
    Forte doesn't put some serious effort in product development and marketing,
    like now, the future of this product suite looks very bleak indeed. And I
    wouldn't want to spend my millions knowing I have to do it all over again 2
    years from now.
    Keeping an eye on the future, where the only certainty is change, I would
    not focus on platform independance. I would focus on language independance.
    CORBA seemed like a very good idea 2 years ago, but it turned out to be too
    complex, technical and inflexible. I would definately go for a CBD
    architecture, using XML as backbone. XML can be exchanged between components
    using HTTP, CORBA, DCOM, FTP, file copy, DCE, C/C++ call in/out, RMI, IIOP,
    E-mail, MQSeries, etc. etc. Or any mixture of these systems.
    The role of the data architect will become much more important than the role
    of the application architect. The choice for a language or tool is reduced
    to "the best choice here and now" as long as you design your large
    application as loosly coupled components. It's OK if all of these components
    are Forte and they're all communicating using Forte native RMI's. As long as
    the design is sound, it's not going to be very difficult to exchange
    individual components by others, built in Java, VB, Perl, Cobol++, Fortran
    for Windows, or what other monsters the future might bring. The only thing
    that binds them, is the datamodel (NB: datamodel is not the same as
    databasemodel)
    I do worry about the trend to use very large, omni-present, closed,
    non-component architectures, like the current ERP applications. This locks
    organisations into a single, expensive and hard to maintain technology.
    However, it is an opportunity for us, OO - C/S - CBD developers, to build
    bridges, adapters, wrappers and gateways to hook these systems into the rest
    of the organisation.
    Pascal Rottier
    Atos Origin Nederland (BAS/West End User Computing)
    Tel. +31 (0)10-2661223
    Fax. +31 (0)10-2661199
    E-mail: Pascal.Rottiernl.origin-it.com
    ++++++++++++++++++++++++++++
    Philip Morris (Afd. MIS)
    Tel. +31 (0)164-295149
    Fax. +31 (0)164-294444
    E-mail: Rottier.Pascalpmintl.ch
    -----Original Message-----
    From: Gabriel, C200/Fa. GFT, DA [mailto:A.Gabriel3deutschepost.de]
    Sent: Wednesday, December 06, 2000 5:44 PM
    To: 'forte-userslists.xpedior.com'
    Subject: Re: (forte-users) RE: Forte' vs J2EE
    If I were you, I would also consider this very important issue ( I think
    it's the same for all 4GL users ), WILL THERE BE FORTE 4GL 5.0?I wonder every time I see that... Why is this that important?
    (my mail is long.. if you don't like long mails, delete it now :) )
    Let's see from the business' point of view:
    If you would like to have an application implemented now,
    use now, then you choose an environment existing now.
    Now Forte 4GL seems to be a better alternative than Java,
    because of the issues mentioned by others already.
    I seem to be short-sighted, but could anybody tell me
    with 100% accuracy, what will happen to Java in two years?
    I doubt...
    Forte did not changed too much in the last two years, and
    still rocks, at least compared to other existing enterprise
    level alternatives. So, nothing has changed that dramatically.
    If you look behind the marketing-hype, you will probably agree.
    I think, for the next two years Forte will be good enough for us too.
    And what then? We will find out then, not now. Anybody, who tries to
    explain you what will be in two years in the IT, almost certainly lies :)
    Of course, using a "two years old technology" is not that cool from the
    marketing point of view, but you use a solid technology, most likely
    bug-free,
    or at least having only known bugs. That is technically important!
    If you ask about investment protection ... ?
    Forte is very good in this subject too. If you look at it, you will see, it
    is
    sold as an integration solution (Fusion, Conductor, etc...)
    If something is sold as an integration tool, it should be not that difficult
    to
    integrate :) Forte supports the most important standards, existing now.
    If your future system supports it (it should), it will be easy to upgrade to
    it,
    using the existing product,know-how, etc... Probably without noticeable
    downtime.
    Scalability issues: Forte scales well from big to very-big to ultra-big.
    What is big, you have to decide :)
    For example, one million mails per day is not big. :)
    For small businesses Forte isn't good. Java is. And a lot of other
    environments
    are, for example Perl, Python, etc...
    My personal opinion is that our future will be heavily influenced by free
    software.
    They are very good already, and will be only better.
    As Forte evolves, one important step would be to port it to free (and thus
    independent)
    OS's and DB's like Linux or FreeBSD and Postgres or Mysql. Even without
    warranty!
    I can't see what Sun's goal is with Forte, maybe they wouldn't
    like this idea at all, since that may be the market segment what their Java
    is thought for.
    But that would be the perfect investment production as the company grows,
    they don't have
    to do anything to the software, just buy machines, and play around in
    Environment Console :)
    From the personal point of view:Although I don't work with Forte in the moment, I did this till last year,
    and I will do
    that in the next year too :)
    If you would like to protect your "investment" and/or "market value" then
    try to learn
    platform and language independent things. I think, knowing Forte is 25%
    platform dependent
    knowledge (so useless anywhere else) and 75% platform independent. Using,
    analysing, designing,
    programming, and living OO is absolutely platform independent.
    Project (and self-) management, presentation techniques, design and
    documentation practices, version
    and revision management, and so on, they are all platform independent.
    Furthermore if you quit the Forte world, and have to program f.e. Java, you
    will learn it in weeks.
    JFC, Swing, et. al. are nothing, if you know OO. You just need a book or
    an online manual, and you
    can write programs in the first week. You will have much more problems with
    the working environment,
    and you will wonder, how the others can use that crap... after the smart
    Forte IDE :)
    Back to business a bit:
    One big advantage of Forte, that came to my mind right now is that you can't
    (ok, you can, but it is
    difficult) to write bad OO programs (and designs). In Java, it is too
    easy... believe me, I saw some examples ... :)
    Sorry for the bad english and the long mail...
    Best regards,
    Akos Gabriel
    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

  • RE: (forte-users) Is there a later version than Forte v30L2?What 's th

    Hi,
    We have recently upgraded to 30L4, and Forte say that this fixes a
    corruption problem with the repository to do with large projects.
    This patch also fixes the problem with AfterValueChange event on
    FillInFields.
    Upgrading was simple for us as we don't use Express.
    R4 is still next year some time as far as I know.
    Regards,
    Jace.
    Jason de Cean
    Genisys Team
    Lumley Technology Ltd.
    Lvl. 8, 55 Sussex St
    Sydney, NSW 2000 Australia
    Ph: 02 9248 1321
    -----Original Message-----
    From: Haben, Dirk [mailto:[email protected]]
    Sent: Wednesday, 20 October, 1999 3:06
    To: 'Soapbox Forte Users'
    Subject: (forte-users) Is there a later version than Forte v30L2? What's
    the news on R4?
    G'day
    Someone posted a while back about Forte v30L2 having a minor problem
    with
    the repository. What's the latest on v30L2 and is there a later release
    worth going/waiting for - from v30G2?
    What's the release plan for R4 - and what's in it?
    Is SynerJ vastly different to Forte - complement, supplement? Any
    management
    issues to know/learn about?
    When will we see integration of selected projects to baseline only
    rather
    than whole workspace?
    Thanks,
    Dirk
    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 know system management for SynerJ is more complicated. I just got the
    1.4.1 version of SynerJ and it has completely changed on how partitioning
    work regarding the EJBs. Just more to learn to do the same thing we did in
    Forte.
    ka
    Kamran Amin
    [email protected]
    (203)-459-7362 or 8-204-7362 - Trumbull
    From: Peter Sham[SMTP:[email protected]]
    Sent: Wednesday, October 20, 1999 9:55 AM
    To: Haben, Dirk; 'Soapbox Forte Users'
    Subject: Re: (forte-users) Is there a later version than Forte v30L2?
    What's the news on R4?
    Hi,
    I guess many people is interested in finding out how different it is
    between SynerJ and TOOL.
    Here is something to share. 
    1. Forte is posting all manuels ( SynerJ, Fusion, Conductor ) on the Web. 
    You just need a customer login in.  Here is a good start.
    2. java.sun.com now has a beta document J2EE APM which explain the
    architectual of J2EE.  The document how and when you will use JSP,
    Servlet, EJB & Java Bean etc.  You will find it along with the J2EE beta
    free download.
    My feeling is: on system management level, SynerJ is more or less similiar
    with what we have now ( maybe they jus rewriting everything in Java ). 
    However, on development and design level, there is quite a large
    difference.  Nevertheless, it's exciting.
    Regards,
    Peter Sham.
    "Haben, Dirk" <[email protected]> wrote:
    G'day
    Someone posted a while back about Forte v30L2 having a minor problem
    with
    the repository. What's the latest on v30L2 and is there a later
    release
    worth going/waiting for - from v30G2?
    What's the release plan for R4 - and what's in it?
    Is SynerJ vastly different to Forte - complement, supplement? Any
    management
    issues to know/learn about?
    When will we see integration of selected projects to baseline only
    rather
    than whole workspace?
    Thanks,
    Dirk
    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]

  • RE: (forte-users) Object Request Brokers.....

    Hi Rajeev,
    I just happen to have the following two technotes on hand that helped me
    answers the very same questions..
    <<forte.zip>>
    Hope it helps... if you need more help... fell free to give me a shout!
    Ciao
    Kim
    -----Original Message-----
    From: Rajeev Talwar [SMTP:rtalshotmail.com]
    Sent: Monday, February 21, 2000 6:34 PM
    To: kamranaminyahoo.com
    Subject: (forte-users) Object Request Brokers.....
    Hi All,
    We are writing a cold fusion application which needs to use some
    services from a Forte application. We also have a Cold Fusion Visi
    Broker(ORB)to communicate with Forte. I was wondering what all we need
    in order to get a handle to all the service objects used by Forte
    application in our Cold Fusion application.
    Also do we need to change our deployment scheme for the Forte
    application. I
    believe we have to make a special deployment
    for Forte application to be available to ORB's. By default,
    Forte uses Unix internal communication mechanism like sockets
    etc. for service objects to be available across different
    partitions.
    Also do we need to run both applications and ORB on the same box
    or can we put them in some kind of network.
    I hope I made myself quite clear what we are looking for. I will be
    more than happy to put some more details in case someone needs
    further clarification.
    Are there any technotes out there whcih we can refer to.
    I will appreciate any thoughts.
    -Rajeev Talwar
    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

    You can also use the HTTP-DC project.... You don't
    need Web Enterprise for this. From what I can tell,
    this is available in L.x on....
    There is api documentation in M.2 (with scant
    examples.)
    There's a special process to put the project in your
    repository (it isn't installed in the repository in
    the standard install,) the documentation in M.2
    (probably in M.0 too, AFAIK) that tells you how to do
    this (look for HTTP-DC in the online help.)
    I haven't done much with it yet, I've just installed
    it. If anybody out there has examples, that'd be
    great. I'll try to contribute more the moment I get a
    chance to explore it....
    Christopher Fury
    BellSouth Communications Systems
    --- Daniel Nguyen <dnguyenclub-internet.fr> wrote:
    Hi,
    If you have Web Enterprise, you can user
    HttpAccess.SendRequest().
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Amin, Kamran a &eacute;crit:
    Is there any way to make a HTTP request from TOOLto another HTTP Service?
    thanks in advance.
    For the archives, go to:
    http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. Tounsubscribe, send in a new
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.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
    Kick off your party with Yahoo! Invites.
    http://invites.yahoo.com/

  • RE: (forte-users) Support for OpenVMS v7.1-2 on EV6 chip setques tion

    http://www.forte.com/support/platforms.html
    Dec Alpha with OpenVMS 7.1 is supported for 3L2
    -----Original Message-----
    From: Haben, Dirk [SMTP:[email protected]]
    Sent: Wednesday, November 24, 1999 2:37 AM
    To: 'Soapbox Forte Users'
    Cc: 'Forte Support'
    Subject: (forte-users) Support for OpenVMS v7.1-2 on EV6 chip set
    question ...
    Folxs
    I have a new EV6 Alpha available and want to run Forte on it.
    OpenVMS v7.1-2 is a supported OS for Forte v30G2 and 30L2 I think.
    OpenVMS v7.1-2 is a supported OS for the new EV6 Alpha chipset.
    Will Forte v30G2 or 30L2 work on this hardware?
    Is it supported on this platform?
    When will it be supported on the EV6 chip set and what version of Forte do
    I
    need?
    Thanks,
    Dirk
    PS: Anyone out here using the EV6 and Forte?
    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]

    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: (forte-users) 3J= 3M new to me error

    Hi Thomas,
    Thanks for your email but I think it will be interesting for Brenda not me.
    It is exactly what I have expected from Forte Support: detailed information
    about bugs and workarounds. But what I cannot understand is that #53398 was
    released without any information about possible reasons for this problem or
    suggested workarounds. My first reaction after reading this bugreport was to
    open a new case at CallCenter to get more information about it. Please
    release more information with your bug reports !
    Regards
    Zenon Adamek
    Information Services
    Senior Programmer Analyst
    Tel: 905 712-1084 ext. 3628
    Fax: 905 712-6709
    E-mail: zadamekpurolator.com
    -----Original Message-----
    From: Thomas Degen - Sun Germany Forte Tools - Bonn
    [SMTP:thomas.degensun.com]
    Sent: Wednesday, September 27, 2000 9:49 AM
    To: Adamek, Zenon
    Cc: 'Brenda Cumming'; Forte-userslists.xpedior.com
    Subject: RE: (forte-users) 3J=>3M new to me error
    Hi Zenon,
    bug #53398 is not a bug which will likely get fixed, it's an informational
    bugreport.
    You might see an errorstack like Brenda has reported (and described in
    informational
    bugreport #53398) probably when you are doing something illegal that is
    possible
    via Forte Tool but Forte is not trapping it for performance reasons. Hence
    you will see
    the error coming from your illegal operation only at runtime, probably
    only
    while
    running interpreted in the Forte IDE, but in worst case it might be even a
    segmentation
    violation.
    Technotes 12448 'Sudden client partition crashes at runtime' and 11225
    'Don't reparent
    mapped Widgets between UserWindows at runtime' explain this matter . See
    attached.
    But maybe Brenda is much more experiencing a problem as described by Forte
    Technote 11398 'Read Only Workspace Errors using ListViews or ActiveX
    control'
    that might get easily resolved via setting of FORTE_YIELD_THROTTLE=0.
    Good Luck and Best Regards !
    BTW: I've logged bug #53398, so I've felt responsible to explain its real
    background.
    Thomas
    Thomas Degen
    Sun Microsystems - Forte Tools
    Forte CTE & Sustaining Group
    Technical Support Germany
    tel.:+49.228/91499-50
    MailTo:thomas.degensun.com
    Technote 11398 Read Only Workspace Errors using ListViews or ActiveX
    control
    SCENARIO:
    Getting some unusual interpreter errors that result in an error stating
    that
    the workspace has been set to read only. Please see Enclosures for the
    two
    most common error stacks that have been encountered. The abbreviated
    versions of the errors are:
    - Can't read record (record size = -1)
    - Id in index does not match id in record header in data file
    - Recursive deserialization attempted.
    - Unknown Mark type in deserialization
    - Could not read record (64,74615) from repository data file.
    Header
    is corrupt.
    These errors can be happening in either the development environment when
    running from one of the development workshops, or with the deployed
    application.
    The bug outlined in this Technote may be the culprit if the errors above
    are
    seen when running a client on Windows NT or Motif and the user interface
    incorporates ActiveX controls or ListView/TreeView widgets.
    CAUSE:
    Basically what is happening is that in rare circumstances Forte may invoke
    a
    nested copy of the interpreter while the first interpreter has yielded.
    This
    is not a problem in and of itself, but in the case where the original
    interpreter was in the middle of a repository fetch when it yielded, and
    the second interpreter needs to fetch code as well, we will get one of the
    errors listed above, depending on the exact timing. The reason for the
    errors is that the repository code at this level is thread-safe but not
    re-entrant. It is protected by a mutex that is already owned by the
    current task. Which, given the scenario outlined here, where the two
    interpreters are running inside of the same task, results in the nested
    interpreter being allowed to change data out from under the first.
    While for every fetch one or more calls to WindowSystem.Yield will be made
    (this is there to prevent the semblance of system lock-up on Win 3.1,
    where
    Yield is the only way other applications can be allowed to run), there is
    a parameter which controls how often to actually yield, which by default
    is
    set to one out of every 100 calls. This is the reason the problem is
    intermittent--you need a yield to occur during a repository fetch
    which starts another interpreter which also needs to fetch code from
    disk.
    The reason this has only surfaced recently is that the nested interpreter
    scenario can only happen in 2 cases that we know of:
    - ActiveX controls which respond to events/Windows messages
    - Outline fields/ListViews with column(s) mapped to virtual
    attributes
    In all other normal cases, the yield can process the message (typically a
    paint message) without starting another interpreter, so regardless of
    whether
    the first interpreter yielded during a repository operation or not, there
    is
    no conflict.
    SOLUTION:
    The workaround is to prevent yields altogether by setting the
    FORTE_YIELD_THROTTLE environment variable equal to 0 in the client's
    environment. This should have no detrimental effects since the yield code
    is in place solely for Windows 3.1x clients.
    ERROR STACK 1
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to
    prevent the application from attempting to write to the repository. The
    repository and work you have saved to the repository are safe. If your
    workspace
    contains unsaved work, you may use the following procedure to save this
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import
    the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::GetObjectById
    Last TOOL statement: method EFWindowController.EFEventLoop
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    The remainder of the Error Manager stack is:
    SYSTEM ERROR: Internal Error attempting to deserialize element (64,67470)
    (fetch
    bitmask is 0x20). Your workspace is now read-only to prevent the
    application
    from attempting to write to the repository. The repository and work you
    have
    saved to the repository are safe. If your workspace contains unsaved work,
    you
    may use the following procedure to save this work. First, export the
    changed
    components. Then, shut down and restart this application and reopen this
    workspace in read-write mode. Finally, import the changed components and
    save
    your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Last TOOL statement: method EFTabManagerNew.EFNoteBookHandler
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    SYSTEM ERROR: Unknown Mark type in deserialization.
    Class: qqsp_ImplementationException
    Error #: [1101, 34]
    Detected at: qqrp_DeSerializeObject::ProcessHdr
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    ERROR STACK 2
    SYSTEM ERROR: A serious error has occurred in Repository
    (c:\PROGRA~1\CSSPTEST\conplu0). Corrective action may be necessary.
    Notify
    your repository administrator.
    Class: qqsp_ImplementationException
    Error #: [1101, 198]
    Detected at: qqrp_Repository::Fetch
    Last TOOL statement: method
    SalesDevelopment_NWC.DEVNotifyofTabSetCurrent
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    SYSTEM ERROR: Could not read record (64,74615) from repository data file.
    Header is corrupt.
    Class: qqsp_ImplementationException
    Error #: [1106, 612]
    Detected at: qqbt_BtreeAccess::FetchDataFileRecord
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    Technote 11225 Don't reparent mapped Widgets between UserWindows at
    runtime
    It is sometimes tempting to unparent a widget from one UserWindow and
    reparent
    it into another at runtime. However, this can cause crashes if the widget
    (or
    its decendants) are "mapped" to data. Here's why...
    Suppose you have two UserWindows, UW1 and UW2. UW1 contains a DataField
    (DF1)
    which is mapped to a TextData. UW2 contains a RadioList (RL2) which is
    mapped to
    a scalar Integer. At compile time, every mapped attribute is internally
    assigned
    a "Map ID" (a small integer) which is used to tie the Widget to its
    corresponding attribute. These Map IDs are used by the Widget to look up a
    pointer to their data in a "Map" which is maintained by the UserWindow.
    Each
    UserWindow is assumed be to independent of the others, so there is nothing
    wrong
    with Widgets in different UserWindows being assigned the same Map IDs.
    In
    this
    case, let's assume that DF1 and RL2 both got assigned the same Map ID of
    3. No
    problem so far, since each lives in a separate UserWindow with a separate
    map.
    Now suppose at runtime the application "detaches" or unparents DF1 from
    its
    UserWindow and reparents it somewhere into UW2. When it comes time for DF1
    to
    paint itself the Display System it must ask the Runtime System for the
    value of
    DF1's mapped attribute. To do that it says "give me the value of the
    TextData
    for DF1. You'll find it in the Map for this UserWindow (UW1), and its Map
    ID is
    3". When the runtime system goes to do this it expects to find a TextData
    in
    this "slot" of the map, but instead it picks up the integer which is
    mapped to
    RL2. At best this leads to bad data being returned; more likely you get a
    segfault and a crash.
    If DF1 was not a mapped attribute (say, a Rectangle) there would be no
    problem
    because there is no data mapped to a Rectangle. If instead of moving DF1
    you
    created a brand new DataField on the fly there would be no problem,
    because the
    dynamic DataField would not have any Map ID and so couldn't conflict with
    any
    IDs in UW2.
    So how do you solve this problem? This is exactly what Nested Windows are
    all
    about. While you can't move DF1 into the middle of UW2, you can nest
    UW1.
    This
    works because UW1 brings its map with it, and when you access DF1 it knows
    to
    look up its value in UW1's map.
    UserWindows are intended to be the "unit of compilabilty" that can be
    nested
    inside other UserWindows. It is dangerous to "transplant" anything from
    inside
    one UserWindow into another at runtime.
    (Note that you can't avoid this problem by cloning DF1 because the MapID
    gets
    copied along with it, and the clone will fail in the same way.)
    Further details explained in related technote 12448 'Sudden client
    partition
    crashes at runtime.'
    Technote 12448 Sudden client partition crashes at runtime
    Scenario : You have two UserWindows, A and B. When Window A starts up, it
    instantiates an instance of B and reparents some component of B into A's
    window
    hierarchy.
    This is not allowed and almost always leads to an error at best or at
    worse a
    segmentation fault.
    Here's why :
    When you compile a UserWindow in Forte, each "mapped attribute" (whether a
    form
    element or menu element) is assigned an internal ID which represents an
    offset into
    that UserWindow's table of mapped attributes. This offset is only valid
    in the
    context of the UserWindow in which it was compiled. If you detach a
    FieldWidget or
    MenuWidget from one compiled Window ("tmpMenu" for example) and then
    parent
    into another compiled window ("tmpWindow") the internal ID comes with it.
    When Forte tries to make use of that copied widget it uses the ID as an
    offset
    into tmpWindow's table of mapped attributes. But that copied offset is
    meaningless in the context of tmpWindow's table, so you get some kind off
    error.
    In this case it found that the data type of the variable in the slot
    wasn't
    what
    was expected. But you might even index off the end of the table and get a
    segmentation fault.
    There is nothing to prevent you from dynamically creating menu items and
    adding
    them to a window at runtime; that will work fine. Although of course you
    can't
    access them via mapped attributes, since those can only be created at
    compile time.
    But you are not allowed to reparent a widget from one compiled UserWindow
    into
    the hierarchy of another.
    More information may be found in technote 11225 'Don't reparent mapped
    Widgets
    between UserWindows at runtime'.
    Possible errorstacks seen at runtime instead of a complete crash or
    segmentation
    violation while you are illegally reparenting a widget or menuitem between
    windows
    at runtime:
    Map::SetSubjectData: Invalid conversion from map type 0 to subject type 22
    SYSTEM ERROR: Bad parameter at location 3 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 3
    Error Time: Wed Aug 09 13:03:57
    Exception occurred (locally) on partition "testproject_CL0_Client",
    (partitionId = D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd,
    taskId =
    [D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd.68]) in application
    "FTLaunch_cl0", pid 672 on node ONEWAY in environment Audi3M2Env.
    At 13:14 26.09.00 -0400, Adamek, Zenon wrote:
    Hi,
    It is the unfixed defect 53398. Please contact Forte support.
    Zenon
    -----Original Message-----
    From: Brenda Cumming [SMTP:brenda_cummingtranscanada.com]
    Sent: Tuesday, September 26, 2000 1:15 PM
    To: Forte User group
    Subject: (forte-users) 3J=>3M new to me error
    Hi,
    We are in the process of going from 3J1 to 3.0.M.2, and I am getting
    this error that I am unfamiliar with on a GUI that works fine in 3J.
    It
    does not happen all the time, and I have been unable to establish the
    pattern that kicks it off. Has anyone seen this before?
    PS- this error is not occurring in the deployed (non-compiled) app,but
    when I am running locally from my workspace.
    SYSTEM ERROR: Bad parameter at location 6 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 6
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2,
    taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Can't find scope 20070 for a class.
    Class: qqsp_Exception
    Error #: [201, 11]
    Detected at: qqlo_ClassTableLoadScope at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to prevent the application from attempting to write to the repository.
    The repository and work you have saved to the repository are safe. If
    your
    workspace contains unsaved work, you may use the following procedure
    to save this work. First, export the changed components. Then, shut down and
    restart this application and reopen this workspace in read-write mode.
    Finally, import the changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::IsDistributed
    Last TOOL statement: method PPMeasWin.
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Internal Error attempting to deserialize element
    (64,120684) (fetch bitmask is 0x20). Your workspace is now read-onlyto
    prevent
    the application from attempting to write to the repository. The
    repository
    and work you have saved to the repository are safe. If your workspace
    contains unsaved work, you may use the following procedure to savethis
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Recursive Deserialization attempted, Internal Error!
    Class: qqsp_UsageException with ReasonCode: SP_ER_INVALIDSTATE
    Error #: [301, 231]
    Detected at: qqsp_DeSerializeDriver::Run at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in anew
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.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

    Hi Thomas,
    Thanks for your email but I think it will be interesting for Brenda not me.
    It is exactly what I have expected from Forte Support: detailed information
    about bugs and workarounds. But what I cannot understand is that #53398 was
    released without any information about possible reasons for this problem or
    suggested workarounds. My first reaction after reading this bugreport was to
    open a new case at CallCenter to get more information about it. Please
    release more information with your bug reports !
    Regards
    Zenon Adamek
    Information Services
    Senior Programmer Analyst
    Tel: 905 712-1084 ext. 3628
    Fax: 905 712-6709
    E-mail: zadamekpurolator.com
    -----Original Message-----
    From: Thomas Degen - Sun Germany Forte Tools - Bonn
    [SMTP:thomas.degensun.com]
    Sent: Wednesday, September 27, 2000 9:49 AM
    To: Adamek, Zenon
    Cc: 'Brenda Cumming'; Forte-userslists.xpedior.com
    Subject: RE: (forte-users) 3J=>3M new to me error
    Hi Zenon,
    bug #53398 is not a bug which will likely get fixed, it's an informational
    bugreport.
    You might see an errorstack like Brenda has reported (and described in
    informational
    bugreport #53398) probably when you are doing something illegal that is
    possible
    via Forte Tool but Forte is not trapping it for performance reasons. Hence
    you will see
    the error coming from your illegal operation only at runtime, probably
    only
    while
    running interpreted in the Forte IDE, but in worst case it might be even a
    segmentation
    violation.
    Technotes 12448 'Sudden client partition crashes at runtime' and 11225
    'Don't reparent
    mapped Widgets between UserWindows at runtime' explain this matter . See
    attached.
    But maybe Brenda is much more experiencing a problem as described by Forte
    Technote 11398 'Read Only Workspace Errors using ListViews or ActiveX
    control'
    that might get easily resolved via setting of FORTE_YIELD_THROTTLE=0.
    Good Luck and Best Regards !
    BTW: I've logged bug #53398, so I've felt responsible to explain its real
    background.
    Thomas
    Thomas Degen
    Sun Microsystems - Forte Tools
    Forte CTE & Sustaining Group
    Technical Support Germany
    tel.:+49.228/91499-50
    MailTo:thomas.degensun.com
    Technote 11398 Read Only Workspace Errors using ListViews or ActiveX
    control
    SCENARIO:
    Getting some unusual interpreter errors that result in an error stating
    that
    the workspace has been set to read only. Please see Enclosures for the
    two
    most common error stacks that have been encountered. The abbreviated
    versions of the errors are:
    - Can't read record (record size = -1)
    - Id in index does not match id in record header in data file
    - Recursive deserialization attempted.
    - Unknown Mark type in deserialization
    - Could not read record (64,74615) from repository data file.
    Header
    is corrupt.
    These errors can be happening in either the development environment when
    running from one of the development workshops, or with the deployed
    application.
    The bug outlined in this Technote may be the culprit if the errors above
    are
    seen when running a client on Windows NT or Motif and the user interface
    incorporates ActiveX controls or ListView/TreeView widgets.
    CAUSE:
    Basically what is happening is that in rare circumstances Forte may invoke
    a
    nested copy of the interpreter while the first interpreter has yielded.
    This
    is not a problem in and of itself, but in the case where the original
    interpreter was in the middle of a repository fetch when it yielded, and
    the second interpreter needs to fetch code as well, we will get one of the
    errors listed above, depending on the exact timing. The reason for the
    errors is that the repository code at this level is thread-safe but not
    re-entrant. It is protected by a mutex that is already owned by the
    current task. Which, given the scenario outlined here, where the two
    interpreters are running inside of the same task, results in the nested
    interpreter being allowed to change data out from under the first.
    While for every fetch one or more calls to WindowSystem.Yield will be made
    (this is there to prevent the semblance of system lock-up on Win 3.1,
    where
    Yield is the only way other applications can be allowed to run), there is
    a parameter which controls how often to actually yield, which by default
    is
    set to one out of every 100 calls. This is the reason the problem is
    intermittent--you need a yield to occur during a repository fetch
    which starts another interpreter which also needs to fetch code from
    disk.
    The reason this has only surfaced recently is that the nested interpreter
    scenario can only happen in 2 cases that we know of:
    - ActiveX controls which respond to events/Windows messages
    - Outline fields/ListViews with column(s) mapped to virtual
    attributes
    In all other normal cases, the yield can process the message (typically a
    paint message) without starting another interpreter, so regardless of
    whether
    the first interpreter yielded during a repository operation or not, there
    is
    no conflict.
    SOLUTION:
    The workaround is to prevent yields altogether by setting the
    FORTE_YIELD_THROTTLE environment variable equal to 0 in the client's
    environment. This should have no detrimental effects since the yield code
    is in place solely for Windows 3.1x clients.
    ERROR STACK 1
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to
    prevent the application from attempting to write to the repository. The
    repository and work you have saved to the repository are safe. If your
    workspace
    contains unsaved work, you may use the following procedure to save this
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import
    the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::GetObjectById
    Last TOOL statement: method EFWindowController.EFEventLoop
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    The remainder of the Error Manager stack is:
    SYSTEM ERROR: Internal Error attempting to deserialize element (64,67470)
    (fetch
    bitmask is 0x20). Your workspace is now read-only to prevent the
    application
    from attempting to write to the repository. The repository and work you
    have
    saved to the repository are safe. If your workspace contains unsaved work,
    you
    may use the following procedure to save this work. First, export the
    changed
    components. Then, shut down and restart this application and reopen this
    workspace in read-write mode. Finally, import the changed components and
    save
    your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Last TOOL statement: method EFTabManagerNew.EFNoteBookHandler
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    SYSTEM ERROR: Unknown Mark type in deserialization.
    Class: qqsp_ImplementationException
    Error #: [1101, 34]
    Detected at: qqrp_DeSerializeObject::ProcessHdr
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    ERROR STACK 2
    SYSTEM ERROR: A serious error has occurred in Repository
    (c:\PROGRA~1\CSSPTEST\conplu0). Corrective action may be necessary.
    Notify
    your repository administrator.
    Class: qqsp_ImplementationException
    Error #: [1101, 198]
    Detected at: qqrp_Repository::Fetch
    Last TOOL statement: method
    SalesDevelopment_NWC.DEVNotifyofTabSetCurrent
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    SYSTEM ERROR: Could not read record (64,74615) from repository data file.
    Header is corrupt.
    Class: qqsp_ImplementationException
    Error #: [1106, 612]
    Detected at: qqbt_BtreeAccess::FetchDataFileRecord
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    Technote 11225 Don't reparent mapped Widgets between UserWindows at
    runtime
    It is sometimes tempting to unparent a widget from one UserWindow and
    reparent
    it into another at runtime. However, this can cause crashes if the widget
    (or
    its decendants) are "mapped" to data. Here's why...
    Suppose you have two UserWindows, UW1 and UW2. UW1 contains a DataField
    (DF1)
    which is mapped to a TextData. UW2 contains a RadioList (RL2) which is
    mapped to
    a scalar Integer. At compile time, every mapped attribute is internally
    assigned
    a "Map ID" (a small integer) which is used to tie the Widget to its
    corresponding attribute. These Map IDs are used by the Widget to look up a
    pointer to their data in a "Map" which is maintained by the UserWindow.
    Each
    UserWindow is assumed be to independent of the others, so there is nothing
    wrong
    with Widgets in different UserWindows being assigned the same Map IDs.
    In
    this
    case, let's assume that DF1 and RL2 both got assigned the same Map ID of
    3. No
    problem so far, since each lives in a separate UserWindow with a separate
    map.
    Now suppose at runtime the application "detaches" or unparents DF1 from
    its
    UserWindow and reparents it somewhere into UW2. When it comes time for DF1
    to
    paint itself the Display System it must ask the Runtime System for the
    value of
    DF1's mapped attribute. To do that it says "give me the value of the
    TextData
    for DF1. You'll find it in the Map for this UserWindow (UW1), and its Map
    ID is
    3". When the runtime system goes to do this it expects to find a TextData
    in
    this "slot" of the map, but instead it picks up the integer which is
    mapped to
    RL2. At best this leads to bad data being returned; more likely you get a
    segfault and a crash.
    If DF1 was not a mapped attribute (say, a Rectangle) there would be no
    problem
    because there is no data mapped to a Rectangle. If instead of moving DF1
    you
    created a brand new DataField on the fly there would be no problem,
    because the
    dynamic DataField would not have any Map ID and so couldn't conflict with
    any
    IDs in UW2.
    So how do you solve this problem? This is exactly what Nested Windows are
    all
    about. While you can't move DF1 into the middle of UW2, you can nest
    UW1.
    This
    works because UW1 brings its map with it, and when you access DF1 it knows
    to
    look up its value in UW1's map.
    UserWindows are intended to be the "unit of compilabilty" that can be
    nested
    inside other UserWindows. It is dangerous to "transplant" anything from
    inside
    one UserWindow into another at runtime.
    (Note that you can't avoid this problem by cloning DF1 because the MapID
    gets
    copied along with it, and the clone will fail in the same way.)
    Further details explained in related technote 12448 'Sudden client
    partition
    crashes at runtime.'
    Technote 12448 Sudden client partition crashes at runtime
    Scenario : You have two UserWindows, A and B. When Window A starts up, it
    instantiates an instance of B and reparents some component of B into A's
    window
    hierarchy.
    This is not allowed and almost always leads to an error at best or at
    worse a
    segmentation fault.
    Here's why :
    When you compile a UserWindow in Forte, each "mapped attribute" (whether a
    form
    element or menu element) is assigned an internal ID which represents an
    offset into
    that UserWindow's table of mapped attributes. This offset is only valid
    in the
    context of the UserWindow in which it was compiled. If you detach a
    FieldWidget or
    MenuWidget from one compiled Window ("tmpMenu" for example) and then
    parent
    into another compiled window ("tmpWindow") the internal ID comes with it.
    When Forte tries to make use of that copied widget it uses the ID as an
    offset
    into tmpWindow's table of mapped attributes. But that copied offset is
    meaningless in the context of tmpWindow's table, so you get some kind off
    error.
    In this case it found that the data type of the variable in the slot
    wasn't
    what
    was expected. But you might even index off the end of the table and get a
    segmentation fault.
    There is nothing to prevent you from dynamically creating menu items and
    adding
    them to a window at runtime; that will work fine. Although of course you
    can't
    access them via mapped attributes, since those can only be created at
    compile time.
    But you are not allowed to reparent a widget from one compiled UserWindow
    into
    the hierarchy of another.
    More information may be found in technote 11225 'Don't reparent mapped
    Widgets
    between UserWindows at runtime'.
    Possible errorstacks seen at runtime instead of a complete crash or
    segmentation
    violation while you are illegally reparenting a widget or menuitem between
    windows
    at runtime:
    Map::SetSubjectData: Invalid conversion from map type 0 to subject type 22
    SYSTEM ERROR: Bad parameter at location 3 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 3
    Error Time: Wed Aug 09 13:03:57
    Exception occurred (locally) on partition "testproject_CL0_Client",
    (partitionId = D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd,
    taskId =
    [D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd.68]) in application
    "FTLaunch_cl0", pid 672 on node ONEWAY in environment Audi3M2Env.
    At 13:14 26.09.00 -0400, Adamek, Zenon wrote:
    Hi,
    It is the unfixed defect 53398. Please contact Forte support.
    Zenon
    -----Original Message-----
    From: Brenda Cumming [SMTP:brenda_cummingtranscanada.com]
    Sent: Tuesday, September 26, 2000 1:15 PM
    To: Forte User group
    Subject: (forte-users) 3J=>3M new to me error
    Hi,
    We are in the process of going from 3J1 to 3.0.M.2, and I am getting
    this error that I am unfamiliar with on a GUI that works fine in 3J.
    It
    does not happen all the time, and I have been unable to establish the
    pattern that kicks it off. Has anyone seen this before?
    PS- this error is not occurring in the deployed (non-compiled) app,but
    when I am running locally from my workspace.
    SYSTEM ERROR: Bad parameter at location 6 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 6
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2,
    taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Can't find scope 20070 for a class.
    Class: qqsp_Exception
    Error #: [201, 11]
    Detected at: qqlo_ClassTableLoadScope at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to prevent the application from attempting to write to the repository.
    The repository and work you have saved to the repository are safe. If
    your
    workspace contains unsaved work, you may use the following procedure
    to save this work. First, export the changed components. Then, shut down and
    restart this application and reopen this workspace in read-write mode.
    Finally, import the changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::IsDistributed
    Last TOOL statement: method PPMeasWin.
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Internal Error attempting to deserialize element
    (64,120684) (fetch bitmask is 0x20). Your workspace is now read-onlyto
    prevent
    the application from attempting to write to the repository. The
    repository
    and work you have saved to the repository are safe. If your workspace
    contains unsaved work, you may use the following procedure to savethis
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Recursive Deserialization attempted, Internal Error!
    Class: qqsp_UsageException with ReasonCode: SP_ER_INVALIDSTATE
    Error #: [301, 231]
    Detected at: qqsp_DeSerializeDriver::Run at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in anew
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.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

  • Re: (forte-users) Delays in data transfer..server-to-client

    I would try using DOM (distributed object manager) traces. trc:do:20 will
    give you information on each messages sent from and received by the
    partition. Levels are 1, 2, 5, 7, and 8, and trc:do:*:8 is very
    verbose. trc:do:20:1 may tell you what you want to know. trc:do:1:1 will
    give you a basic 1-line-per DOM event trace that may also be all you need.
    Communications manager traces will tell you about network and socket-level
    activity, but not about the sizes of the messages themselves. In addition,
    the operating system makes decisions about physical packet size and
    send/receive timing, so CM activities only generally map to actual network
    activity.
    -tdc
    iPlanet Integration Server Engineering
    At 09:24 AM 5/1/01 -0700, you wrote:
    All,
    We are experiencing delays in object transfer between server and client. The
    delays are longer with large objects (a single object with an array of objects
    that reflect the rows returned in a database) than small (ie: 10 rows vs 400).
    Does anyone have any (actual) experience using the various Forte' flags in
    order
    to show the actual size of the object/packets being passed between the server
    and client?
    We are using input/output between client and server, input on all the SO's
    within a partition. Response on the server side is good, roughly 6 seconds or
    so. The round trip fare however from the time the client makes the SO call to
    the time that it completes is in the 25-30 second range, leaving roughly 20-25
    seconds unaccounted for. I have brought in the network guys who are
    requesting
    the data size and packet information. I did not see what I am looking for
    using
    the trc:cm:*:4 and trc:cm:*:8 flags. I will be trying the trc:cm:*:10
    flag, but
    Forte' indicates that this flag is very verbose, the systems group hates
    it when
    I use up all of THEIR disk space!
    Any ideas would be appreciated as always.

    Jeff,
    If the object you are passing does not require changes made to it in the
    server partition to be returned, pass the object as copy input (pass by
    value not reference). If it is necessary to pass the object as input, try
    to pass only the attributes that are required to the remote partition
    instead of the whole object.
    Input/Output is normaly used with scalar variables. When a scalar is passed
    to a remote partition, if the value is changed in that partition, the value
    is not returned to the calling partition unless Input/Output is used.
    Input/Output should not be used for object type parameters, if you need to
    pass a reference, use Input only. If you can pass by value, use Copy Input.
    You will notice a huge difference in performance changing from Input to Copy
    input when passing large objects.
    Hope this helps,
    Travis Foote
    Fortedeveloper.com Inc.
    ----- Original Message -----
    From: "Jeff Bennett" <[email protected]>
    To: <[email protected]>
    Sent: Tuesday, May 01, 2001 9:24 AM
    Subject: (forte-users) Delays in data transfer.. server-to-client
    >
    All,
    We are experiencing delays in object transfer between server and client.The
    delays are longer with large objects (a single object with an array ofobjects
    that reflect the rows returned in a database) than small (ie: 10 rows vs400).
    >
    Does anyone have any (actual) experience using the various Forte' flags inorder
    to show the actual size of the object/packets being passed between theserver
    and client?
    We are using input/output between client and server, input on all the SO's
    within a partition. Response on the server side is good, roughly 6seconds or
    so. The round trip fare however from the time the client makes the SOcall to
    the time that it completes is in the 25-30 second range, leaving roughly20-25
    seconds unaccounted for. I have brought in the network guys who arerequesting
    the data size and packet information. I did not see what I am looking forusing
    the trc:cm:*:4 and trc:cm:*:8 flags. I will be trying the trc:cm:*:10flag, but
    Forte' indicates that this flag is very verbose, the systems group hatesit when
    I use up all of THEIR disk space!
    Any ideas would be appreciated as always.
    -jeff
    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: [email protected]

  • Re: (forte-users) Accessing Technote 10398

    Ketie,
    let's see, I have been using FORTE since November of
    1994. since the beginning those flags have been common
    knowledge within the FORTE community and widely
    disseminated.
    the FORTE flags have been invaluable to me and HAVE
    NEVER caused any downtime. sure, there are a few
    wildcards in there that can cause trouble, but to
    throw out the baby with the bathwater is ridiculous.
    what would life be without trc:lo:25? to trace
    exceptions.
    or trc:os:1:1 and trc:os:5:5 to tune memory
    consumption?
    Should i have to call a consultant or FORTE tech
    support to do the deep dive on exceptions or tune my
    applications? I think not.
    Overreaction? No.
    Mark.
    --- Katie Tierney <katiethetierneys.com> wrote:
    I think y'all are overreacting. There are log flags
    that are detailed in
    Technote 10398 that can cause serious implications
    if used improperly. I
    think Forte/Sun just wants to make sure that people
    don't make mistakes that
    cost them valuable time.
    As a Forte Consultant for many years, I have seen a
    good number of people
    misuse information that was not completely
    understood. In some cases, this
    caused excessive downtime for production
    applications. The only time I ever
    saw Technote 10398 being provided to a customer was
    when they were utilizing
    Forte Consulting, or when a Technical Support
    Engineer was heavily involved.
    I was extremely surprised to learn that it was
    available to non-employees via
    the website - that sounds as if someone may have
    inadvertantly marked it as
    customer-viewable (incorrectly, obviously) in Sun's
    internal systems.
    Again, I think you're overreacting. I am sure that
    this isn't a case of Sun
    thinking anyone is "stupid." It's a matter of
    providing the support that
    people need to properly utilize the tools available.
    -Katie
    mark joyce wrote:
    read: Sometimes, the technotes are markedunviewable
    to customers because they might need further
    explanation. Let me know if you need to log acase.
    in other words, you are TOO STUPID to use FORTElogger
    flags, although they have been widely distributedand
    used for years by FORTE users.
    i can't believe it either. i don't know what iwould
    have done for the last 5 years without using theFORTE
    flags. such a wealth of good output!
    what an excuse! "they might need furtherexplanation"
    .. if i had to log every problem with FORTE,instead
    of resolving them myself through the information
    obtained by using flags, i would have lost my joba
    long time ago.
    mark.
    --- Jeff Bennett <jeff_bennettsehamerica.com>wrote:
    I thought it might be prudent to share with youthe
    response I received from Sun
    regarding the inability to access technote 10398
    (Fort&eacute; logger flags). I was
    able to access it 3+ weeks ago, and fortunatelykept
    a hard-copy. But, how are
    we supposed to do our job effectively and
    expediently if we do not have
    (complete) access to this resource?
    I thought the technotes were completely open tothe
    Fort&eacute; development
    community.... wrong.
    -jeff
    ---------------------- Forwarded by JeffBennett/SEH
    on 09/11/2000 09:02 AM
    Forte Support <supportforte.com> on 09/08/2000
    10:05:17 AM
    To: Jeff Bennett/SEHsehamerica.com
    cc:
    Subject: Re: Accessing Technote 10398
    Fax to:
    Hello Jeff,
    Were you at one point able to access thistechnote?
    You know why -- it's
    because this technote is marked for employeeviewing
    only and not available
    for customer viewing. If you need further
    assistance or need to look at
    this technote, what you would need to do is loga
    call with us and then a
    tech support specialist will give you a callback.
    Sometimes, the
    technotes are marked unviewable to customersbecause
    they might need
    further explanation. Let me know if you need tolog
    a case.
    Thanks!
    At 09:57 AM 9/8/00 -0700, you wrote:
    I am no longer able to access technote 10398
    (forte
    logger flags)... why?
    -jeff~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    Sun&reg; microsystems
    Jeannie Lee
    Phone: (510) 451-5400
    Fax (510) 869-2010
    Email: jeannie.leesun.com
    Forte Tools Response Coordinator
    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
    http://mail.yahoo.com/
    For the archives, go to:
    http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. Tounsubscribe, send in a new
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
    http://mail.yahoo.com/

    Ketie,
    let's see, I have been using FORTE since November of
    1994. since the beginning those flags have been common
    knowledge within the FORTE community and widely
    disseminated.
    the FORTE flags have been invaluable to me and HAVE
    NEVER caused any downtime. sure, there are a few
    wildcards in there that can cause trouble, but to
    throw out the baby with the bathwater is ridiculous.
    what would life be without trc:lo:25? to trace
    exceptions.
    or trc:os:1:1 and trc:os:5:5 to tune memory
    consumption?
    Should i have to call a consultant or FORTE tech
    support to do the deep dive on exceptions or tune my
    applications? I think not.
    Overreaction? No.
    Mark.
    --- Katie Tierney <katiethetierneys.com> wrote:
    I think y'all are overreacting. There are log flags
    that are detailed in
    Technote 10398 that can cause serious implications
    if used improperly. I
    think Forte/Sun just wants to make sure that people
    don't make mistakes that
    cost them valuable time.
    As a Forte Consultant for many years, I have seen a
    good number of people
    misuse information that was not completely
    understood. In some cases, this
    caused excessive downtime for production
    applications. The only time I ever
    saw Technote 10398 being provided to a customer was
    when they were utilizing
    Forte Consulting, or when a Technical Support
    Engineer was heavily involved.
    I was extremely surprised to learn that it was
    available to non-employees via
    the website - that sounds as if someone may have
    inadvertantly marked it as
    customer-viewable (incorrectly, obviously) in Sun's
    internal systems.
    Again, I think you're overreacting. I am sure that
    this isn't a case of Sun
    thinking anyone is "stupid." It's a matter of
    providing the support that
    people need to properly utilize the tools available.
    -Katie
    mark joyce wrote:
    read: Sometimes, the technotes are markedunviewable
    to customers because they might need further
    explanation. Let me know if you need to log acase.
    in other words, you are TOO STUPID to use FORTElogger
    flags, although they have been widely distributedand
    used for years by FORTE users.
    i can't believe it either. i don't know what iwould
    have done for the last 5 years without using theFORTE
    flags. such a wealth of good output!
    what an excuse! "they might need furtherexplanation"
    .. if i had to log every problem with FORTE,instead
    of resolving them myself through the information
    obtained by using flags, i would have lost my joba
    long time ago.
    mark.
    --- Jeff Bennett <jeff_bennettsehamerica.com>wrote:
    I thought it might be prudent to share with youthe
    response I received from Sun
    regarding the inability to access technote 10398
    (Fort&eacute; logger flags). I was
    able to access it 3+ weeks ago, and fortunatelykept
    a hard-copy. But, how are
    we supposed to do our job effectively and
    expediently if we do not have
    (complete) access to this resource?
    I thought the technotes were completely open tothe
    Fort&eacute; development
    community.... wrong.
    -jeff
    ---------------------- Forwarded by JeffBennett/SEH
    on 09/11/2000 09:02 AM
    Forte Support <supportforte.com> on 09/08/2000
    10:05:17 AM
    To: Jeff Bennett/SEHsehamerica.com
    cc:
    Subject: Re: Accessing Technote 10398
    Fax to:
    Hello Jeff,
    Were you at one point able to access thistechnote?
    You know why -- it's
    because this technote is marked for employeeviewing
    only and not available
    for customer viewing. If you need further
    assistance or need to look at
    this technote, what you would need to do is loga
    call with us and then a
    tech support specialist will give you a callback.
    Sometimes, the
    technotes are marked unviewable to customersbecause
    they might need
    further explanation. Let me know if you need tolog
    a case.
    Thanks!
    At 09:57 AM 9/8/00 -0700, you wrote:
    I am no longer able to access technote 10398
    (forte
    logger flags)... why?
    -jeff~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    Sun&reg; microsystems
    Jeannie Lee
    Phone: (510) 451-5400
    Fax (510) 869-2010
    Email: jeannie.leesun.com
    Forte Tools Response Coordinator
    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
    http://mail.yahoo.com/
    For the archives, go to:
    http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. Tounsubscribe, send in a new
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
    http://mail.yahoo.com/

  • RE: (forte-users) user name

    Troy Burns wrote:
    It would definitely be of interest to me, since this is an item on my
    "to-do" list. If you can release the code, let me know.Here 'tiz.
    The files you're getting are:
    SFVosC.pex - "C" wrapper.
    Vos.C - The "C" callout.
    Vos.H - A header file for Vos.C, used by ...
    VosCLI.C - A command-line-driven mainline to test Vos.C
    VosObj.CEX - An object that provides a "nice" interface to the "C" wrapper.
    We use this in two ways: instantiated as a local object to get the username
    under VMS or NT, or as a service object partitioned to an NT server to do
    username/password authentication on behalf of clients on other operating
    systems.
    The following changes have been made throughout the files in an attempt to
    keep various people in DuPont happy:
    "our_application_root" replaces the actual name of the root directory of
    the application.
    "our_vms_server" replaces the actual name of the system in question.
    "our_nt_server" replaces the actual name of the system in question.
    "our_application_name" replaces the actual name of the application.
    A copyright notice, the usual disclaimer, and a "fair use" statement (which
    is just a reference to the Perl Artistic License) have been inserted.
    Except for the "ExternalObjectFiles" declaration in SFVosC.pex, all the
    changes appear to have been in comments. But the files come with the usual
    freeware warranty (i.e. "use at your own risk".)
    Have fun with these!
    Tom Wyant
    (See attached file: SFvosC.pex)(See attached file: Vos.c)(See attached
    file: Vos.h)(See attached file: Voscli.c)(See attached file: VosObj.cex)

    I would try going to the "lowest common denominator" between WindowsNT and
    Windows95 - DOS. Both windowing OS's sort of have their roots in DOS, or at
    least both are capable of opening a DOS session.
    Therefore, from a DOS prompt type "set" to view the environment variables for
    both OS types. Look for a common variable between the two that stores the
    userID. If you can find one of these your application will be that much more
    portable between these two Windows mutations.
    I used "set" on my NT and found my userID assigned to a few variables. I haven't
    done this on a Windows95 machine in quite some time, but if the machine is on
    the network it should have at least one environment variable with the userID.
    I'm just guessing that DOS has a variable to store the userID that will be
    common to both machines.
    Good luck....
    Kelsey PetrychynSaskTel Technical Analyst
    ITM - Technology Solutions - Distributed Computing
    Tel (306) 777 - 4906, Fax (306) 359 - 0857
    Internet:kelsey.petrychynSasktel.sk.ca
    Quality is not job 1. It is the only job!
    "Olivier Andrieux" <oandrieuxaxialog.fr> on 07/19/2000 09:12:41 AM
    To: forte-userslists.xpedior.com
    cc: (bcc: Kelsey Petrychyn/SaskTel/CA)
    Subject: (forte-users) user name
    Hi
    I use this command to catch the username:
    task.part.operatingsystem.getenv('username')
    with NT, there is no problem
    but with windows95 or 98 the command doesn't find the username.
    Thanks in advance.
    Olivier Andrieux
    Axialog
    Lille
    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

Maybe you are looking for