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.
    Mohan

    Hello 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,
    Peter

    Additionally, 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 regards

    My 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&eacute; 4GL(tm) Product (formerly the Fort&eacute; Application Environment)
    Product Context
    &middot; 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.
    &middot; Fort&eacute; 4GL is recognized by Gartner Group as the most successful
    Enterprise Application Development Tool.
    &middot; 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.
    &middot; The SMI development tools group intends to actively enhance and
    promote Fort&eacute; 4GL for the indefinite future. 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.
    &middot; 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.
    &middot; 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.
    &middot; 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.
    Mid-Year Release
    &middot; Tentatively labeled "release 3.5" to be distributed as a free
    product enhancement for customers under maintenance
    &middot; Scheduled for Summer 2000
    &middot; Defining features
    &middot; Introspection (reflection) - the ability for an object to describe
    itself at runtime
    &middot; Improved integration with applications developed using
    Fort&eacute;-for-Java Community Edition(tm) (formerly NetBeans)
    &middot; Platform support improvements to track important operating system
    and database vendor activity
    &middot; Target features
    &middot; Display system enhancements (e.g., Motif 2 support, line arrowheads,
    window refresh control, editable outline fields)
    &middot; Dynamic library loading
    &middot; Improved CORBA/IIOP support
    &middot; Improved XML and XSLT class support
    &middot; JMQ support
    End-Year Release
    &middot; Tentatively labeled "release 3.6" to be distributed as a free
    product enhancement for customers under maintenance
    &middot; Scheduled for year end 2000
    &middot; Defining features
    &middot; Any Release 3.5 target features that were not included in 3.5
    &middot; Generation of EJB interfaces for R3 service objects
    &middot; Platform support improvements to track important operating system
    and database vendor activity
    &middot; Target features
    &middot; COBOL record handling as part of the OS390 transaction adapter
    &middot; Improved runtime security
    &middot; 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&eacute; 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&eacute; 4GL(tm) Product (formerly the Fort&eacute; Application Environment)
    Product Context
    &middot; 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.
    &middot; Fort&eacute; 4GL is recognized by Gartner Group as the most successful
    Enterprise Application Development Tool.
    &middot; 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.
    &middot; The SMI development tools group intends to actively enhance and
    promote Fort&eacute; 4GL for the indefinite future. 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.
    &middot; 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.
    &middot; 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.
    &middot; 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.
    Mid-Year Release
    &middot; Tentatively labeled "release 3.5" to be distributed as a free
    product enhancement for customers under maintenance
    &middot; Scheduled for Summer 2000
    &middot; Defining features
    &middot; Introspection (reflection) - the ability for an object to describe
    itself at runtime
    &middot; Improved integration with applications developed using
    Fort&eacute;-for-Java Community Edition(tm) (formerly NetBeans)
    &middot; Platform support improvements to track important operating system
    and database vendor activity
    &middot; Target features
    &middot; Display system enhancements (e.g., Motif 2 support, line arrowheads,
    window refresh control, editable outline fields)
    &middot; Dynamic library loading
    &middot; Improved CORBA/IIOP support
    &middot; Improved XML and XSLT class support
    &middot; JMQ support
    End-Year Release
    &middot; Tentatively labeled "release 3.6" to be distributed as a free
    product enhancement for customers under maintenance
    &middot; Scheduled for year end 2000
    &middot; Defining features
    &middot; Any Release 3.5 target features that were not included in 3.5
    &middot; Generation of EJB interfaces for R3 service objects
    &middot; Platform support improvements to track important operating system
    and database vendor activity
    &middot; Target features
    &middot; COBOL record handling as part of the OS390 transaction adapter
    &middot; Improved runtime security
    &middot; 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&eacute; 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.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

  • 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?
    thanks

    JSTL 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 Nagam

    Koushik,
    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,
    koushik

    Koushik,
    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 Struts

    By 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 suggest 

    Hi,
    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