PL/SQL introspection/reflection
Hi there,
I am using "Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production".
Is there any introspection/reflection mechanism available in PL/SQL?
What I would like to do is to retrieve an object type name (and owner/schema) from one of its member function or procedure.
Albain
Perhaps you means something like this?
create or replace procedure who_called_me( owner out varchar2,
name out varchar2,
lineno out number,
caller_t out varchar2 )
as
call_stack varchar2(4096) default dbms_utility.format_call_stack;
n number;
found_stack BOOLEAN default FALSE;
line varchar2(255);
cnt number := 0;
begin
loop
n := instr( call_stack, chr(10) );
exit when ( cnt = 3 or n is NULL or n = 0 );
line := substr( call_stack, 1, n-1 );
call_stack := substr( call_stack, n+1 );
if ( NOT found_stack ) then
if ( line like '%handle%number%name%' ) then
found_stack := TRUE;
end if;
else
cnt := cnt + 1;
-- cnt = 1 is ME
-- cnt = 2 is MY Caller
-- cnt = 3 is Their Caller
if ( cnt = 3 ) then
lineno := to_number(substr( line, 13, 6 ));
line := substr( line, 21 );
if ( line like 'pr%' ) then
n := length( 'procedure ' );
elsif ( line like 'fun%' ) then
n := length( 'function ' );
elsif ( line like 'package body%' ) then
n := length( 'package body ' );
elsif ( line like 'pack%' ) then
n := length( 'package ' );
elsif ( line like 'anonymous%' ) then
n := length( 'anonymous block ' );
else
n := null;
end if;
if ( n is not null ) then
caller_t := ltrim(rtrim(upper(substr( line, 1, n-1 ))));
else
caller_t := 'TRIGGER';
end if;
line := substr( line, nvl(n,1) );
n := instr( line, '.' );
owner := ltrim(rtrim(substr( line, 1, n-1 )));
name := ltrim(rtrim(substr( line, n+1 )));
end if;
end if;
end loop;
end;
create or replace function who_am_i return varchar2
is
l_owner varchar2(30);
l_name varchar2(30);
l_lineno number;
l_type varchar2(30);
begin
who_called_me( l_owner, l_name, l_lineno, l_type );
return l_owner || '.' || l_name;
end;
create or replace package pkg_a is
procedure p1;
end;
create or replace package body pkg_a is
procedure p1 is
begin
dbms_output.put_line(who_am_i());
end;
end;
SQL> set serverout on
SQL> exec pkg_a.p1;
SCOTT.PKG_A
PL/SQL procedure successfully completed.
SQL>
Similar Messages
-
Introspection/Reflection/this
Hi,
I would like to get the method name, dynamically, using introspection/reflection.
for example:
//begin of problem
Class SomeClass {
public void SomeMethod() {
System.out.println("method name == "+
this.getClass(). ...?( what goes here to get this method's name)
expected output:
method name == SomeMethod
//end of problem
Hope the problem is clear. I need to retreive the name of the method or constructor using "this", which is the current object reference.
any further questions please reply to the dicussion.
thanks in advance.
MohanHello Mohan,
you cannot do what you want using the reflection API. The reflection API works at runtime, but uses the class definition to find out all the relevant information (fields, method signatures, ...), thus, it cannot tell you which is the currently executing method of a given class instance object.
The only way you can dynamically find out which method is currently executing (or even better, which method called your method) is how you have already described, by parsing an Exception stack trace.
This is not a very effective debugging practice, and should only be used in stead of a debugging utility to find the specific bug you are after. Once you have found your bug, this code should be removed.
Remember, the Reflection API works on a class definition, this is why you cannot use it to work out runtime characteristics (how many times has this method or that method been called, etc.).
Regards,
Manuel Amago. -
PL/SQL Introspection - USER_IDENTIFIERS in Oracle 10g
USER_IDENTIFIERS is a new view as of 11g that will show profile info about stored PL/SQL. For more info, see Tom Kyte's article here:
http://www.oracle.com/technology/oramag/oracle/07-nov/o67asktom.html
I need to replicate part of that functionality in Oracle 10g. Specifically, I need to introspect PL/SQL package bodies and query the starting and ending line numbers for their procedures and functions. Based on a pattern by Nigel Thomas, have constructed the query below. Does anyone have a better way to get that information?
SELECT package_name, object_name program_unit_name,
progtype program_unit_type, startline start_line,
DECODE(endline, startline,
pkg_last_line, NVL(endline, pkg_last_line)) end_line
FROM (
SELECT arg.package_name, arg.progtype, arg.object_name,
pkg_body.line startline,
LEAD(pkg_body.line) OVER (ORDER BY arg.package_name,
pkg_body.line) endline,
( SELECT MAX(line) FROM user_source
WHERE type = 'PACKAGE BODY'
AND name = arg.package_name
) pkg_last_line, text
FROM (
SELECT package_name, object_name,
DECODE(MIN(position),
0, 'FUNCTION',
'PROCEDURE') progtype
FROM user_arguments
WHERE package_name IS NOT NULL
GROUP BY package_name, object_name
) arg,
SELECT *
FROM user_source
WHERE type = 'PACKAGE BODY'
) pkg_body
WHERE pkg_body.name = arg.package_name
AND
-- Remove carraige return and line feeds from end of line
-- Match declaration of function or procedure. Pad with a
-- space to delimit the program unit name. (Some names start
-- with the same characters.)
-- Allow program unit to be defined with a trailing space or a (
-- Assumption: program unit type (FUNCTION, PROCEDURE) and
-- name must be on the same line and must be the first thing
-- on the line.
LTRIM(REPLACE(REPLACE(REPLACE(UPPER(pkg_body.text),CHR(10),''),
CHR(13),'' ),CHR(9), '' )) ||' ' LIKE
arg.progtype || '% ' || arg.object_name || ' %'
OR
LTRIM(REPLACE(REPLACE(REPLACE(UPPER(pkg_body.text),CHR(10),''),
CHR(13),''),CHR(9), '')) ||' ' LIKE
arg.progtype || '% ' || arg.object_name || '(%'
-- Filter out single line comment lines that contain the program
-- unit type and name
AND SUBSTR(TRIM(pkg_body.text), 1, 2) != '--'
-- Filter out lines like multi-line comments that have the
-- program unit type and program unit name on the same line.
-- Remove tabs and spaces for the concatenation.
AND REPLACE(REPLACE(UPPER(pkg_body.text), ' ', ''), CHR(9), '')
LIKE arg.progtype || arg.object_name || '%'
-- Filter out lines that contain PL/SQL statements
AND pkg_body.text NOT LIKE '%;%'
);Thanks,
PeterAdditionally, don't rely on implicit type conversions which may give unexpected results depending on your session settings
DBMS_OUTPUT.PUT_LINE('TODAY IS '||to_char(TODAY, 'DD.MM.YYYY')); -
Reflection/Introspection: how to check simple vs complex inst variables?
Hi developers,
I need to traverse an object tree (xml based generation) and check whether underlying objects (e.g. instance variables) are primitive types/wrappers (int, Integer, short, Short) or complex types (e.g. Employee, Customer, ...). The purpose is to allow users to directly enter data in primitive fields and to expand complex nodes.
I am using introspection/reflection.
Until now I have come out with the following code:
public class MyTest {
public static final List<Class> primitiveList;
static {
primitiveList = new ArrayList<Class>();
primitiveList.add(String.class);
primitiveList.add(Integer.class);
primitiveList.add(Date.class);
primitiveList.add(Short.class);
primitiveList.add(Double.class);
primitiveList.add(Long.class);
public static boolean isPrimitive(Object obj) {
return primitiveList.contains(obj.getClass());
public static void main(String[] arg){
String foo = "foo";
System.out.println(isPrimitive(foo)?"primitive":"complex");
}It looks very low-level to me... Can anyone please suggest a better way to do this?
Thanks and kind regardsMy guess is that you will have to write most of this yourself and that it will be custom code.
However, take a look at nakedobjects.org (no, it's not an adult site). It allows users to do exactly what you are trying (or at least partially what you are trying).
You can optimize your method slightly by using common classes (e.g., Number, CharacterSequence, etc.) but then will have to use Class#isAssignableFrom on each.
- Saish -
Console on Wblogic 9.2 locking up administration server
I am upgrading a 7.0 server to 9.2. Its on a real slow and old sun box. Every 3 or 4 things that I do seems to cause the console to stop responding.
The console worked great in 7.0.
When I do a prstat on the server I see the process is taking up 47% of the cpu but it never seems to really do anything. The only way I can stop the servers in my WLS instance at this point is to do a kill -9. I have waited up to an hour to see if it ever returns, and it does not.
Any help would be appreciated.Hi,
The lack of support is always frustrating. If you are getting paid support from BEA, and getting fuzzy answers, you should let them know.
My experience with BEA, and their support team is the opposite from what you are telling me, they were almost every time very prompt, and knowledgeable. Once every now and then, I do have some issues that they were not able to figure it out, but always very professional.
The parameter PermSize is a parameter to the JVM, this is independent of WL itself, and this is the minimal size of what is known as permanent generation fold. This is just a chunk of memory reserved to the class loading, class unloading, and class reflection information. Given that a web app server does a lot of class loading/unloading, and given that it looks like WL 9.x is really dependent on the introspection/reflection APIs, this extra memory helps WL performance. If you define the PermSize=128m on your development/testing environment without any issue, this same parameter should work with the production environment (with a production deployment/configuration.) Of course, if you have a server with just the admin console, and a managed server with your app, this should also help the performance (if you can handle the extra memory load.)
If you are outnumbered on the move to JBoss, you can do nothing, but just remember that JBoss is no heaven either.
Regards,
LG -
Help with text based game.
SO I've just begun to make a text based game and i've already ran into a problem :/
I've made a switch statement that has cases for each of the classes in the game..for example
Output will ask what you want to be
1. Fighter
2. etc
3. etc
case 1: //Fighter
My problem is i want to be able to display the class
as in game class not java class
as Fighter
That may be a bit confusing to understand sorry if it isn't clear
Here is my code that i'm using this may help.
import java.util.Scanner;
public class main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
int health = 0;
int power = 0;
int gold = 0;
System.out.println("Welcome to my game!");
System.out.println("First of what is your name?");
String name = input.next();
System.out.println(name + " you say? Interesting name. Well then " + name + " what is your race?");
System.out.println();
System.out.println("Press 1. for Human");
System.out.println("Press 2. for Elf");
System.out.println("Press 3. for Orc");
int Race = input.nextInt();
switch (Race) {
case 1: // Human
String race = "Human";
health = 10;
power = 10;
gold = 25;
break;
case 2: // Elf
health = 9;
power = 13;
gold = 25;
break;
case 3: // Orc
health = 13;
power = 9;
gold = 30;
break;
default:
System.out.println("Invalid choice Please choose 1-3");
break;
System.out.println("Now what is your class?");
System.out.println("Press 1. Fighter");
System.out.println("Press 2. Mage");
System.out.println("Press 3. Rogue");
int Class = input.nextInt();
switch (Class) {
case 1: // Fighter
health = health + 1;
power = power + 1;
gold = gold + 1;
break;
case 2: // Mage
health = health + 1;
power = power + 1;
gold = gold + 1;
break;
case 3: // Rogue
health = health + 1;
power = power + 1;
gold = gold + 1;
break;
default:
System.out.println("Invalid choice Please choose 1-3");
break;
System.out.println("So your name is " + name );
System.out.println("and your race is: " + race);
System.out.println("and your class is: " + Class);
}Thanks in advance!Brushfire wrote:
So you're advising him to run his console based game on the EDT, why?Far King good question... To which I suspect the answer is "Ummm... Ooops!" ;-)
@OP: Here's my 2c... if you don't follow then ask good questions and I'll consider giving good answers.
package forums;
import java.util.Scanner;
abstract class Avatar
public final String name;
public int type;
public int health;
public int power;
public int gold;
protected Avatar(String name, int health, int power, int gold) {
this.name = name;
this.health = health;
this.power = power;
this.gold = gold;
public String toString() {
return "name="+name
+" health="+health
+" power="+power
+" gold="+gold
class Human extends Avatar
public Human(String name) {
super(name, 10, 11, 31);
class Elf extends Avatar
public Elf(String name) {
super(name, 9, 13, 25);
class Orc extends Avatar
public Orc(String name) {
super(name, 6, 17, 13);
interface AvatarFactory
public Avatar createAvatar();
class PlayersAvatarFactory implements AvatarFactory
private static final Scanner scanner = new Scanner(System.in);
public Avatar createAvatar() {
System.out.println();
System.out.println("Lets create your avatar ...");
String name = readName();
Avatar player = null;
switch(readRace(name)) {
case 1: player = new Human(name); break;
case 2: player = new Elf(name); break;
case 3: player = new Orc(name); break;
player.type = readType();
return player;
private static String readName() {
System.out.println();
System.out.print("First off, what is your name : ");
String name = scanner.nextLine();
System.out.println(name + " you say? Interesting name.");
return name;
private static int readRace(String name) {
System.out.println();
System.out.println("Well then " + name + ", what is your race?");
System.out.println("1. for Human");
System.out.println("2. for Elf");
System.out.println("3. for Orc");
while(true) {
System.out.print("Choice : ");
int race = scanner.nextInt();
scanner.nextLine();
if (race >= 1 && race <= 3) {
return race;
System.out.println("Bad Choice! Please try again, and DO be careful! This is important!");
private static int readType() {
System.out.println();
System.out.println("Now, what type of creature are you?");
System.out.println("1. Barbarian");
System.out.println("2. Mage");
System.out.println("3. Rogue");
while(true) {
System.out.print("Choice : ");
int type = scanner.nextInt();
scanner.nextLine();
if (type >= 1 && type <= 3) {
return type;
System.out.println("Look, enter a number between 1 and 3 isn't exactly rocket surgery! DO atleast try to get it right!");
public class PlayersAvatarFactoryTest {
public static void main(String args[]) {
try {
PlayersAvatarFactoryTest test = new PlayersAvatarFactoryTest();
test.run();
} catch (Exception e) {
e.printStackTrace();
private void run() {
AvatarFactory avatarFactory = new PlayersAvatarFactory();
System.out.println();
System.out.println("==== PlayersAvatarFactoryTest ====");
System.out.println("Welcome to my game!");
Avatar player1 = avatarFactory.createAvatar();
System.out.println();
System.out.println("Player1: "+player1);
}It's "just a bit" more OOified than your version... and I changed random stuff, so you basically can't cheat ;-)
And look out for JSG's totally-over-the-top triple-introspective-reflective-self-crushing-coffeebean-abstract-factory solution, with cheese ;-)
Cheers. Keith.
Edited by: corlettk on 25/07/2009 13:38 ~~ Typo!
Edited by: corlettk on 25/07/2009 13:39 ~~ I still can't believe the morons at sun made moron a proscribed word. -
RE: (forte-users) Sv: (forte-users) The Death ofForte
This is what I got today:
Statement of Direction
Sun Microsystems, Inc.
Forté 4GL(tm) Product (formerly the Forté Application Environment)
Product Context
· Forté 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é 4GL is recognized by Gartner Group as the most successful
Enterprise Application Development Tool.
· The Sun Microsystems, Inc. (SMI) development tools group (formerly
Forté Software, Inc.) has a strong internal commitment to Forté 4GL. Forté
Fusion is written with, and is currently being enhanced with Forté 4GL.
· The SMI development tools group intends to actively enhance and
promote Forté 4GL for the indefinite future. The best opportunity for
attracting new customers is to leverage the ability of Forté 4GL to easily
build powerful shared business services (server components) that can be
accessed by non-Forté clients (e.g., browsers, Java clients) and that can
easily integrate with new and existing business systems.
· The product enhancement plan calls for continuing to issue
incremental releases approximately twice a year. To speed the release of new
functionality, new features will be included with "preview status." This
means that the overall release can support production deployments, but that
the features marked "preview" are certified for development and demos.
· The planned contents of the next two releases are indicated below.
Users should not expect any features other than those on the list. The
contents of subsequent releases will be determined approximately a year in
advance.
· SMI has retained the Forté field sales organization as an
independent unit whose primary product offerings are Forté 4GL and Forté
Fusion. Continued volume sales of Forté 4GL remain the foundation of our
business plan.
Mid-Year Release
· Tentatively labeled "release 3.5" to be 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é-for-Java Community Edition(tm) (formerly NetBeans)
· 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
End-Year Release
· Tentatively labeled "release 3.6" to be 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 adapter
· Improved runtime security
· Interface classes for access to Netscape Server 4.0 and possibly
other web servers
Longer Term Product Directions
1. TOOL code to Java code migration. Neither release 3.5 nor 3.6 will
contain an automated solution in this area. Technical differences between
TOOL and Java make a 100% automated conversion all but impossible. A
workable solution is likely to involve a combination of tools and services.
2. Common repository between the 4GL and Java products. The recently
devised Java Tools Strategy has necessitated a change in the technology base
for our Java products to make them compatible with both the iPlanet
Application Server and the Forté for Java Community Edition. This, in turn,
has complicated our original vision of a common repository to the point that
we will not embark on this project. Instead, we have elevated
interoperability a short-term priority. In addition, we plan to migrate the
Fusion process definition tools to Java, thereby enabling Fusion definitions
to be stored in a common repository with Java code and components.
3. Other long-term enhancements will be determined by additional
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.
As our products continue to evolve, the features and specifications
described in this document are subject to change without notice. Sun
Microsystems cannot guarantee the completion of any future products or
product features mentioned in this Statement of Direction. By signing
below, the receiving Company agrees that it has not relied on, is not
relying on and will not rely on the potential availability of any future Sun
product, functionality or feature in making any purchases from Sun.
Executed by the Receiving Company Executed by Sun
Microsystems, Inc.
Signature:________________________
Signature:________________________
Name:___________________________
Name:___________________________
(Please Print) (Please
Print)
Title:____________________________
Title:____________________________
Date:____________________________
Date:____________________________This is what I got today:
Statement of Direction
Sun Microsystems, Inc.
Forté 4GL(tm) Product (formerly the Forté Application Environment)
Product Context
· Forté 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é 4GL is recognized by Gartner Group as the most successful
Enterprise Application Development Tool.
· The Sun Microsystems, Inc. (SMI) development tools group (formerly
Forté Software, Inc.) has a strong internal commitment to Forté 4GL. Forté
Fusion is written with, and is currently being enhanced with Forté 4GL.
· The SMI development tools group intends to actively enhance and
promote Forté 4GL for the indefinite future. The best opportunity for
attracting new customers is to leverage the ability of Forté 4GL to easily
build powerful shared business services (server components) that can be
accessed by non-Forté clients (e.g., browsers, Java clients) and that can
easily integrate with new and existing business systems.
· The product enhancement plan calls for continuing to issue
incremental releases approximately twice a year. To speed the release of new
functionality, new features will be included with "preview status." This
means that the overall release can support production deployments, but that
the features marked "preview" are certified for development and demos.
· The planned contents of the next two releases are indicated below.
Users should not expect any features other than those on the list. The
contents of subsequent releases will be determined approximately a year in
advance.
· SMI has retained the Forté field sales organization as an
independent unit whose primary product offerings are Forté 4GL and Forté
Fusion. Continued volume sales of Forté 4GL remain the foundation of our
business plan.
Mid-Year Release
· Tentatively labeled "release 3.5" to be 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é-for-Java Community Edition(tm) (formerly NetBeans)
· 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
End-Year Release
· Tentatively labeled "release 3.6" to be 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 adapter
· Improved runtime security
· Interface classes for access to Netscape Server 4.0 and possibly
other web servers
Longer Term Product Directions
1. TOOL code to Java code migration. Neither release 3.5 nor 3.6 will
contain an automated solution in this area. Technical differences between
TOOL and Java make a 100% automated conversion all but impossible. A
workable solution is likely to involve a combination of tools and services.
2. Common repository between the 4GL and Java products. The recently
devised Java Tools Strategy has necessitated a change in the technology base
for our Java products to make them compatible with both the iPlanet
Application Server and the Forté for Java Community Edition. This, in turn,
has complicated our original vision of a common repository to the point that
we will not embark on this project. Instead, we have elevated
interoperability a short-term priority. In addition, we plan to migrate the
Fusion process definition tools to Java, thereby enabling Fusion definitions
to be stored in a common repository with Java code and components.
3. Other long-term enhancements will be determined by additional
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.
As our products continue to evolve, the features and specifications
described in this document are subject to change without notice. Sun
Microsystems cannot guarantee the completion of any future products or
product features mentioned in this Statement of Direction. By signing
below, the receiving Company agrees that it has not relied on, is not
relying on and will not rely on the potential availability of any future Sun
product, functionality or feature in making any purchases from Sun.
Executed by the Receiving Company Executed by Sun
Microsystems, Inc.
Signature:________________________
Signature:________________________
Name:___________________________
Name:___________________________
(Please Print) (Please
Print)
Title:____________________________
Title:____________________________
Date:____________________________
Date:____________________________ -
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.comYou may be interested in the following which comes from a statement of direction
recently issued by Sun.
Product Context
+ Forté 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é 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é 4GL for new applications.
+ The Sun Microsystems, Inc. (SMI) development tools group (formerly Forté
Software, Inc.)
has a strong internal commitment to Forté 4GL. Forté Fusion is written with, and
is currently
being enhanced with Forté 4GL.
+ SMI has retained the Forté field sales organization as an independent unit
whose primary
product offerings are Forté 4GL and Forté Fusion. Continued volume sales of
Forté 4GL
remain the foundation of our business plan.
Product Future
+ We intend to actively enhance and promote Forté 4GL for the indefinite
future.
+ We believe Forté 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é 4GL to easily build powerful shared business services (server components)
that can be
accessed by non-Forté clients (e.g., browsers, Java clients) and that can easily
integrate with
new and existing business systems.
+ We believe that Forté 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é 4GL, Forté
Fusion, and Forté for
Java) to complement and reinforce each other. Interoperability among the three
product lines
is seen as a critical success factor for Forté 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é-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 -
Tag files, Lists, and object typing
I'm passing a list of objects to a custom tag, created via a tag file.
I can access object properties in the jsp page like this -
<c:out value="${listOfItems[0].property}" />
but inside the tag it doesn't work. It understands that its being passed a list and the number of items in the list but not the type of objects in the list. I think I need to declare the type of object that the list is returning but I'm unsure of th jstl way of doing this.
advice?
thanksJSTL uses introspection/reflection to call methods/access properties.
It doesn't have to know the type of object in the list.
How are you accessing this object in your tag file? Using EL again? That should work fine. If you use java/scriptlet code then you will need to cast the object.
Have you declared the attribute that is being passed in? What type are you expecting? Default is String unless you specify otherwise. -
How to change appraiser / reviewer after creating the appraisal template
Hi All,
Once the Appraisal template created, if we have changes in appraiser / reviewer, how we can change the new names in the appraisal template in standard (other than T.Code: Phap_admin --> Change header data).
For eg., we have created a document for PERNR 1 on Apr 1st for 01.04.2014 to 31.03.2015 with appraiser as Mr. XYZ, on 01.05.2014 Mr. XYZ left and Mr. PQR replaced that position. In this case, how we can replace appraiser name for PERNR 1 as Mr. PQR in the appraisal template.
Please suggest.
Regards,
Venkat NagamKoushik,
Depending on the amount of customizations that you did, it may be easier to use the wizard to re-create the master-detail form & report.
If you still want to give it a go:
Assuming that you created the 2-page Master Detail report & form:
On the first page, you will have to chage the SQL to reflect the new table name. Once you do that, you'll have to re-create the link on the EMPID column.
On the second page, you'll need to do some more work. You'll have to change both Page Rendering Processes: Fetch Row from EMP and Get Next or Previous Primary Key. You'll then need to change the Page Processing Process: Process Row of EMP. Also, ensure that you have a proper Foreign Key relationship between EMP2 and DEPT (or your detail table).
Thanks,
- Scott - -
How to change table name after creating page and application
Hi HTMLDB Team,
i have created a application with page where the region use master detail form with table name emp.Now after developing the page and the application i want to change the table from emp to emp2 where emp2 is the table with same structure of existing emp and same field properties.How can i edit the table as emp2 ?
Thanks in advance,
Cheers,
koushikKoushik,
Depending on the amount of customizations that you did, it may be easier to use the wizard to re-create the master-detail form & report.
If you still want to give it a go:
Assuming that you created the 2-page Master Detail report & form:
On the first page, you will have to chage the SQL to reflect the new table name. Once you do that, you'll have to re-create the link on the EMPID column.
On the second page, you'll need to do some more work. You'll have to change both Page Rendering Processes: Fetch Row from EMP and Get Next or Previous Primary Key. You'll then need to change the Page Processing Process: Process Row of EMP. Also, ensure that you have a proper Foreign Key relationship between EMP2 and DEPT (or your detail table).
Thanks,
- Scott - -
No Accessing Constants from EL
Okay so these things are called (${ }) EL (Expression Language)
Now my question is:
There has to be a good reason/alternative to WHY it is that you can't access constants from EL.
- Why is it that you cannot you access constants from EL (Expression Language)?
Thank you,
Andrew J. Leer
P.S. I'm using StrutsBy a constant, I presume you mean an attribute of a bean that is declared as public final static?
The reason would probably be somethign to do with the fact that EL uses introspection/reflection to discover the attributes of a Bean.
By default 'constants' aren't included in that. -
SQL Server Service is not reflecting to the new name.
Hi,
I just rename the computer and use the command below to rename the SQL Server but the SQL Server Service is not reflecting to the new name.
Is there a way to change the SQL Server Service and agent to reflect the new name or do I have to re-install sql server.
I am using SQL 2008 R2.
Thank you in advance.If running "SELECT
@@servername" yields the old server name, it means the instance has not been renamed.
you must run statement to drop the old name of the instance and recreate it with the new name as the default (local) one..
EXEC master.dbo.sp_dropserver 'MACHINENAME\OLDINSTANCENAME'
go
EXEC master.dbo.sp_addserver 'MACHINENAME\newINSTANCENAME', 'local'
go
I took the code here:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/c07ab906-dabf-4303-9737-d430d82c4f42/how-to-rename-instance-of-sql-server-2008-r2?forum=sqltools
Once you did this, look at your maintenance plans. I sometime end up having one or two still following the old name. Especially if you create this new server from a copy of another virtualized one. -
Using 'getClasses' for reflection / introspection - not found in Jdev
Hi people,
I am using Jdeveloper 10.1.3.0.4 and I am trying to use some of java's reflection / introspection features.
- I am trying to use the getClasses method, part of the 'Class' class.
However, Jdeveloper is telling me 'method not found.' The getClass method
is found OK, but not getClasses, which looks like a standard method in 'Class' in the java doc. Anyone know how to pull this one in ? I am coding import java.lang.Class; explicitly as well.
Specifically, my need is to determine, at runtime, a list of the lowest-level 'leaf node' subclasses in a specific class inheritance tree. I reckon I should be able to do this with a recursive routine that uses getClasses on each class; when this returns an empty array I know I am at a lowest-level subclass. However it's failing on the first hurdle -
static House myHouse = new House(); // House is the simple class I want to test
static Class[] array_of_classes ;
array_of_classes = myHouse.getClasses();
-> method getClasses not found in <current package.class>
on a similar vein, I tried adding
import java.lang.reflect;
- this gives java.lang.reflect not found.
My only alternative is to code my program in a totally non-OO way! :-(
please help!
thanks!!!Hi,
I resolved the other errors by changing all references from com.bea.jcom.Variant
etc to com.linar.jintegra.class name..all were present under the com.linar.jintegra
package.
Thank you all anyways,
Regards,
rahul
"Rahul Srivastava" <[email protected]> wrote:
>
Hi,
We are generating java classes for the COM dll using JCOM com2java compiler.
We are getting a compilation error for import class not found when compiling
the
generated Proxy java source code. It can't find the com.bea.jcom.Dispatch
class that
the generated Proxy java source code extends. It also can't find com.bea.jcom.Variant
or com.bea.jcom.Param. These are interfaces or data types or classes used
by COM
library.
I added weblogic.jar to my class path and the only Dispatch class i found
inside
the weblogic.jar is com.linar.jintegra.Dispatch;
We have com objects for which we want to develop an EJB client to interface
with
the COM object using JCOM with Native Mode disabled.
Any help on the compilation error..I tried changing the extends for Dispatch
to com.linar.jintegra.Dispatch
but the other errors are still there.
To begin with, I think the generated code should not refer to any of the
COM data
types.
Any help please.
Thank you in advance,
Regards,
Rahul Srivastava
[email protected] -
SQL 2008R2 Database status not reflecting on SCOM 2012
Hi Everyone,
I am using SQL server 2008R2 with 2 instance and 9 database, SCOM agent installed on that server.
When i put 2 database offline i am not getting any alert, and i also delete 3 database its not reflecting on scom server.
I also verified SCOM services running and done re-install the agent.
Please suggestHi,
Have you imported the proper version of SQL MP for SCOM?
http://www.microsoft.com/en-us/download/details.aspx?id=10631
The details below are related to SQL MP.
SQL MP has database status monitor - the information from user manual:
"Periodically the monitor checks the status of the database as reported by SQL Server. This is done by running a query against the master database of the SQL Server instance and returning the state of the database. If you receive
an alert from this monitor, an action is required in order to bring the database back to an operational state."
SQL Server database state
Monitor health state
ONLINE
GREEN
OFFLINE
RED
RECOVERY PENDING
RED
SUSPECT
RED
EMERGENCY
RED
RESTORING
YELLOW
RECOVERING
YELLOW
Alert is generated when monitor switches to Critical (red) state.
Deleted databases will disappear after the next DB instances discovery which is performed every 4 hours by default. In order to initialize discovery manually you can restart SCOM Agent Health service on SQL Server and wait for a while.
Igor Savchenko, VIAcode Consulting LLC (http://www.viacode.com/)
Maybe you are looking for
-
I am having a small problem ( Or so it seems. )
I have bought a 2.1 I-Trigue L3800 system as well as a I-Trigue 3400 system. On the websites, it says that the L3800 is far better then the 3400. However, it sounds as if the subwoofer on the 3400 was MUCH more powerful then the L3800 ( On bass level
-
How can you brand a serial number onto the system board?
I just replaced a system board and need to brand it with the appropriate serial number. How do I accomplish that? I have software to run when I do that with Dells or Lenovos. How can I do it with an HP?
-
HT204400 Apple TV Could Not Sign In
Could Not Sign In. ConnectionManager::invoke::Failed to find service connection URL. I get this message on my screen what's wrong But everything still seams to work except for this annoying message..?
-
How can i get & use java true type fonts in my applet
Hi, I could get the System fonts in my Applet by making use of Toolkit.getFontList() I have used getGraphicsEnvironment to get fonts but my browser doesn't support it.I get ClassNotFoundException. How can I get & make use True Type Fonts in my Java A
-
Need advice about text formatting and hyperlinking
Hi folks, Thanks for reading my post. I am new at this and am using Dreamweaver 6.0 for our website. We are putting together a substantial directory on our site and were wondering if there was any way for us to: 1. Not have to enter each hyperlink ad