Wednesday 30 November 2022

FNG Debug messages does not write in to FND_LOG_MESSAGES

 

CAUSE

The issue addressed in the following Bug:

Bug 20632815 SETTINGS FND: DEBUG OPTIONS DOES NOT WRITE TO FND_LOG_MESSAGES

When the sequence "FND_LOG_MESSAGES_S" reaches its maximum, no message is logged in FND_LOG_MESSAGES.

When "FND_LOG_MESSAGES_S" reaches its maximum, you need to cycle through the sequence to remove rows from FND_LOG_MESSAGES.

SOLUTION

To resolve this issue, test the following steps on your development instance and move to appropriate environment if necessary (Note: for 11i, go directly to step 4):

1. Download Patch 20632815 along with any required prerequisite patches.

2. Ensure a valid backup exists before applying the recommended patch.

3. Apply the patch for your version along with any required prerequisite patches per the readme file instructions.

4. Follow the steps below to purge FND_LOG_MESSAGES:

   A. verify that CYCLE_FLAG is Y for the sequence FND_LOG_MESSAGES_S.

   select CYCLE_FLAG from dba_sequences where SEQUENCE_NAME = 'FND_LOG_MESSAGES_S';

   B. verify that there is a new executable defined 'FNDLOGPUR'

   Navigation: System Administrator -> Concurrent -> Program -> Executable  and Query for 'FNDLOGPUR'

   C. Verify that there is a new Concurrent Program defined 'Purge FND Logs' (short name FNDLOGPUR)

   Navigation: System Administrator -> Concurrent -> Program -> Define and Query for 'Purge FND Logs'

   D. Verify that newly created CP is available for SYSADMIN user to be run.

   Navigation: System Administrator -> Requests -> Run . Run 'Purge FND Logs'.

   Concurrent Program 'Purge FND Logs' is used to purge rows from FND_LOG_MESSAGES. It takes one optional parameter - 'Till Date'.
   This program deletes all the rows from FND_LOG_MESSAGES with TIMESTAMP value < 'Till Date'. If Till date is not entered, it is defaulted to sysdate-365.

5. Retest the Fnd Debug log functionality and confirm the messages now appear as expected.

Tuesday 29 November 2022

Dr Edgar F Codd Computer scientist

What is a RDBMS (Relational Database Management System)?

RDBMS is stands for Relational Database Management System. RDBMS is the foundation for SQL and all current database management systems, including MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.

A Relational database management system (RDBMS) is a database management system (DBMS) based on E. F. Codd's relational model.

Relational Database Management System

In the jargon of Database Management Systems, there is a rule that is unspoken. Since there aren't many databases that follow all of E.F. Codd's rules, the unspoken rule has been getting more attention.

  • A management system or piece of software is considered to be a Database Management System if it complies with any one of the five or six rules set by E.F. Codd (DBMS).
  • If a management system or programme adheres to any of E.F. Codd's seven to nine recommended guidelines, it qualifies as a semi-relational database management system (semi- RDBMS).
  • In order to be considered a full Relational Database Management System, a management system or software must comply with all 9–12 of E.F. Codd's suggested rules (RDBMS).
Here is the list of Codd's Rules.

Rule 0 − Foundation rule

Any relational database management system (RDBMS) that is proposed or argued to be an RDBMS should be able to handle all of the stored data using its relational features.

Rule 1 − Rule of Information

Relational databases should store data as relationships. In Relational Database Management Systems, tables are what are called "relations." It is important to store the value as an entity in the table cells, whether it is user-defined data or meta-data.

Rule 2 − Rule of Guaranteed Access

It is against the rules to use pointers to get to data logically. Every atomic data entity should be accessed in a logical way by using the table name, the primary key represented by a specific row value, and the column name represented by an attribute value.

Rule 3 − Rule of Systematic Null Value Support

Relational databases do not have any problems with null values. They should always be thought of as "missing information." Null values don't depend on the type of data. You shouldn't mix them up with blanks, 0s, or empty strings. Null values can also be seen as "data that doesn't apply" or "information that isn't known."

Rule 4 − Rule of Active and online relational Catalog

Metadata is the data about the database or the data about the database in the language of Database Management Systems. "Data dictionary" is the name of the live online catalogue that stores the metadata. The so-called "data dictionary" can only be accessed by authored users with the right permissions, and the same query languages used to get to the database should be used to get to the data in the "data dictionary."

Rule 5 − Rule of Comprehensive Data Sub-language

Integrity constraints, views, data manipulations, transactions, and authorizations should all be able to be written in a single, strong language.

Rule 6 − Rule of Updating Views

Views should reflect the updates of their respective base tables and vice versa. A view is a logical table which shows restricted data. Views generally make the data readable but not modifiable. Views help in data abstraction.

Rule 7 − Rule of Set level insertion, update and deletion

The data should be able to be retrieved, added, changed, and deleted with just one operation.

Rule 8 − Rule of Physical Data Independence

Batch and end-user operations are separated in terms of how they are stored and how they are accessed.

Rule 9 − Rule of Logical Data Independence

Batch users and end users can change the database schema without having to recreate it or the applications that use it.

Rule 10 − Rule of Integrity Independence

Integrity constraints should be kept in the data dictionary as metadata, not in the application programmes.

Rule 11 − Rule of Distribution Independence

The Manipulation of Data The language of the relational system shouldn't care about where the physical data is stored, and it shouldn't matter if the physical data is stored in one place or in many places.

Rule 12 − Rule of Non Subversion

Any row should follow the rules for security and integrity. No special privileges are applicable.


Almost all full scale DBMSs are RDMSs. Oracle implements 11+ rules and so does Sybase. FoxPro only uses 7+ rules, while SQL Server uses 11+ rules.

Tuesday 17 November 2020

OOP Concepts in PLSQL with Record type

 CREATE OR REPLACE TYPE HTML_OBJ_Record is object  (Body_String Clob)



CREATE OR REPLACE TYPE HTML_OBJ AS OBJECT (

   HTML_Record  HTML_OBJ_Record,

   MEMBER PROCEDURE init( SELF IN OUT NOCOPY HTML_OBJ)

  )



CREATE OR REPLACE TYPE BODY HTML_OBJ AS

  

  MEMBER PROCEDURE init (SELF IN OUT NOCOPY HTML_OBJ) IS

  BEGIN

         SELF.HTML_Record:=new HTML_OBJ_Record(null);

         SELF.HTML_Record.body_string:='Hello';

  END;



END;




declare

html HTML_OBJ;

begin

    html := new HTML_OBJ(null);

    DBMS_OUTPUT.put_line('=> '||html.HTML_Record.body_string);

    html.init();

    DBMS_OUTPUT.put_line('=> '||html.HTML_Record.body_string);  

  end;

  


Wednesday 3 June 2020

Create DB Link Example using TNS


CREATE DATABASE LINK DBLink_Name
    CONNECT TO UserName IDENTIFIED BY Password
    USING '(DESCRIPTION=
                (ADDRESS=(PROTOCOL=TCP)(HOST=DBname)(PORT=portNumber))
                (CONNECT_DATA=(SERVICE_NAME=SID))
            )';

Sunday 3 May 2020

Get Number of Rows returned by ResultSet in Java

A simple getRowCount method can look like this :

private int getRowCount(ResultSet resultSet) {
    if (resultSet == null) {
        return 0;
    }

    try {
        resultSet.last();
        return resultSet.getRow();
    } catch (SQLException exp) {
        exp.printStackTrace();
    } finally {
        try {
            resultSet.beforeFirst();
        } catch (SQLException exp) {
            exp.printStackTrace();
        }
    }

    return 0;
}


Just to be aware that this method will need a scroll sensitive resultSet, so while creating the connection you have to specify the scroll option. Default is FORWARD and using this method will throw you exception.
//step3 create the statement object  
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);  

How to move an undecorated JFrame in Java

How to move an undecorated JFrame in Java 

The first step is to create your project by clicking file at the top of your project and then click new project, you can name your project whatever you want. Create you form by right clicking the Source Packages and by selecting New JFrame Form and then drag panel component in your form.
then you will need to create a two event for your panel the Mouse Dragged and Mouse Pressed, copy paste the code below:

[java]
int xMouse;
int yMouse;
private void framedragMouseDragged(java.awt.event.MouseEvent evt) {
int x = evt.getXOnScreen();
int y = evt.getYOnScreen();

this.setLocation(x – xMouse , y – yMouse);

}

private void framedragMousePressed(java.awt.event.MouseEvent evt) {
xMouse  = evt.getX();
yMouse = evt.getY();
}


OADBTransactionImpl in Oracle Application Framework (OAF)

OADBTransactionImpl is a class in Oracle Application Framework (OAF), which is a framework for building Oracle E-Business Suite applications...