Thursday, 20 November 2008
Log4j warning message [log4j:WARN No appenders could be found for logger]
Log4j:
Log4j is a logging or tracing API, large number of applications and framework use Log4j for logging.
Problems:
Sometimes application do not generate log files and generate the following warning message.
log4j:WARN Please initialize the log4j system properly.
Log4j is not initialised properly. The Log4j library files are in application class path but Log4j configuration file is not in application class path.
Add log4j configuration file [log4j.properties or log4j.xml] to class path.
More Info:
Log4j priority order
FATAL: 50000
ERROR: 40000
WARN: 30000
INFO: 20000
DEBUG: 10000
log4j Manual
log4j API
Tuesday, 21 October 2008
Data Structures and Algorithms
Data Structure
A data structure is a way to store and organise data in computer that it can be used efficiently.
(http://en.wikipedia.org/wiki/Data_structure)
(http://en.wikipedia.org/wiki/Data_structure)
Abstract Data Types (ADTs)
Mathematical and logical model. Define data and operations but no implementation.
(http://en.wikipedia.org/wiki/Abstract_data_type)
Ref:
http://en.wikipedia.org/wiki/Data_structure
http://en.wikipedia.org/wiki/Abstract_data_type
http://www.cs.princeton.edu/~rs/AlgsDS07/
http://en.wikipedia.org/wiki/Binary_search_tree
Friday, 3 October 2008
Oracle Sql scripts
User , Role Privileges
Stats Details
Force Index to use
Get the Explain plan for sql query
Check time consuming SQL queries in Oracle
Dynamic Oracle Views
LOCKED DATABASE OBJECTS
select * from dba_tab_privs; select * from dba_role_privs WHERE granted_ROLE= 'SHARED_USER'; select * from dba_sys_privs; select * from all_tab_privs; select * from all_role_privs; select * from all_sys_privs; select * from user_tab_privs; select * from user_role_privs; select * from user_sys_privs; select * from role_tab_privs; select * from role_role_privs; select * from role_sys_privs; select * from role_tab_privs where role = 'SHARED_USER'; select * from role_role_privs where role = 'SHARED_USER'; select * from role_sys_privs where role = 'SHARED_USER' select count(*) from dba_users; select * from user_role_privs; select * from dba_roles where role = 'ADMIN'
Stats Details
-To verify stats select * from user_tab_statistics; select * from user_tab_col_statistics;
Force Index to use
To use a full scan or a range scan. http://www.dba-oracle.com/t_v_sql_hint.htm SELECT /*+ FULL(m) */ b FROM mytable m WHERE b=10; -- full table scan SELECT /*+ INDEX_RS_ASC(m) */ b FROM mytable m WHERE b=10; -- index range scan SELECT /*+ INDEX_FFS(m) */ b FROM mytable m WHERE b=10; -- index fast full scan
Get the Explain plan for sql query
select sql_id, child_number , s.*
from gv$sql s
WHERE upper(SQL_FULLTEXT) like '%TABLE_NAME%'
order by last_active_time desc;
SELECT *
FROM TABLE(dbms_xplan.display_cursor('frmxr4w3tb9wv', 0));
Check time consuming SQL queries in Oracle
SELECT * FROM
(SELECT
sql_fulltext,
sql_id,
child_number,
disk_reads,
executions,
first_load_time,
last_load_time
FROM v$sql
ORDER BY elapsed_time DESC)
WHERE ROWNUM < 20
SELECT Disk_Reads DiskReads, Executions, SQL_ID, SQL_Text SQLText,
SQL_FullText SQLFullText
FROM
(
SELECT Disk_Reads, Executions, SQL_ID, LTRIM(SQL_Text) SQL_Text,
SQL_FullText, Operation, Options,
Row_Number() OVER
(Partition By sql_text ORDER BY Disk_Reads * Executions DESC)
KeepHighSQL
FROM
(
SELECT Avg(Disk_Reads) OVER (Partition By sql_text) Disk_Reads,
Max(Executions) OVER (Partition By sql_text) Executions,
t.SQL_ID, sql_text, sql_fulltext, p.operation,p.options
FROM v$sql t, v$sql_plan p
WHERE t.hash_value=p.hash_value AND p.operation='TABLE ACCESS'
AND p.options='FULL' AND p.object_owner NOT IN ('SYS','SYSTEM')
AND t.Executions > 1
)
ORDER BY DISK_READS * EXECUTIONS DESC
)
WHERE KeepHighSQL = 1
AND rownum <=5;
SELECT username,
buffer_gets,
disk_reads,
executions,
buffer_get_per_exec,
parse_calls,
sorts,
rows_processed,
hit_ratio,
module,
sql_text
-- elapsed_time, cpu_time, user_io_wait_time, ,
FROM (SELECT sql_text,
b.username,
a.disk_reads,
a.buffer_gets,
trunc(a.buffer_gets / a.executions) buffer_get_per_exec,
a.parse_calls,
a.sorts,
a.executions,
a.rows_processed,
100 - ROUND (100 * a.disk_reads / a.buffer_gets, 2) hit_ratio,
module
-- cpu_time, elapsed_time, user_io_wait_time
FROM v$sqlarea a, dba_users b
WHERE a.parsing_user_id = b.user_id
AND b.username NOT IN ('SYS', 'SYSTEM', 'RMAN','SYSMAN')
AND a.buffer_gets > 10000
ORDER BY buffer_get_per_exec DESC)
WHERE ROWNUM <= 20
Dynamic Oracle Views
SELECT * FROM V$FIXED_VIEW_DEFINITION; SELECT * FROM V$FIXED_TABLE; SELECT NAME, TYPE FROM V$FIXED_TABLE WHERE NAME LIKE 'V$%';
LOCKED DATABASE OBJECTS
SELECT l.session_id || ',' || v.serial# sid_serial,
l.ORACLE_USERNAME ora_user,
o.object_name,
o.object_type,
DECODE(l.locked_mode,
0,
'None',
1,
'Null',
2,
'Row-S (SS)',
3,
'Row-X (SX)',
4,
'Share',
5,
'S/Row-X (SSX)',
6,
'Exclusive',
TO_CHAR(l.locked_mode)
) lock_mode,
o.status,
to_char(o.last_ddl_time, 'dd.mm.yy') last_ddl
FROM dba_objects o, gv$locked_object l, v$session v
WHERE o.object_id = l.object_id
and l.SESSION_ID = v.sid;
select a.sid, a.serial#, OBJECT_NAME , a.*
from v$session a, v$locked_object b, dba_objects c
where b.object_id = c.object_id
and a.sid = b.session_id;
ALTER SYSTEM KILL SESSION 'sid,serial#';
--Dynamic spool name
column filename new_val filename
select 'alarm_query_'|| sys_context('userenv','db_name') || '_' || to_char(sysdate, 'yyyymmdd' ) filename from dual;
spool '&filename'
set heading OFF;
--set serveroutput on;
select 'User : ' || user from dual;
select 'Database : ' || ora_database_name from dual;
SQL
Labels:
administrator,
Oracle,
performance,
Sql
Tuesday, 30 September 2008
Java Enumeration Testing
public enum DirectionEnum {
NORTH("N", "North", 1), NORTH_EAST("NE", "North-East", 2), EAST("E", "East", 3), SOUTH_EAST("SE", "South-East", 4), SOUTH("S", "South", 5), SOUTH_WEST(
"SW", "South-West", 6), WEST("W", "West", 7), NORTH_WEST("NW", "North-West", 8);
private final String code;
private final String description;
private final short id;
private DirectionEnum(String code, String description, int id) {
this.code = code;
this.description = description;
this.id = (short) id;
}
public String getCode() {
return code;
}
public String getDescription() {
return description;
}
public short getId() {
return id;
}
public static DirectionEnum findById(int id) {
for (DirectionEnum dir : DirectionEnum.values()) {
if (dir.getId() == id) {
return dir;
}
}
return null;
}
}
public enum VehicleClassEnum {
H("Heavy"), L("Light"), N("Not Specified");
private String description;
private VehicleClassEnum(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
import java.util.Vector;
import java.util.Enumeration;
public class EnumerationTester {
public static void main(String args[]) {
System.out.println(VehicleClassEnum.valueOf("H"));
System.out.println(VehicleClassEnum.valueOf("H").toString());
System.out.println(VehicleClassEnum.valueOf("H").getDescription());
System.out.println(VehicleClassEnum.valueOf(VehicleClassEnumTest.class, VehicleClassEnum.L.getDescription()));
System.out.println(VehicleClassEnum.values());
for (VehicleClassEnum classEnum : VehicleClassEnum.values()) {
System.out.println("VehicleClassEnum:" + classEnum + ", VehicleClassEnum.toStirng()" + classEnum.toString() + ", VehicleClassEnum.name():"
+ classEnum.name() + ", VehicleClassEnum.ordinal():" + classEnum.ordinal() + ", getDeclaringClass:" + classEnum.getDeclaringClass()
+ ", getDescription():" + classEnum.getDescription() + ", compareTo:" + classEnum.compareTo(VehicleClassEnum.L));
}
Enumeration days;
Vector dayNames = new Vector();
dayNames.add("Sunday");
dayNames.add("Monday");
dayNames.add("Tuesday");
dayNames.add("Wednesday");
dayNames.add("Thursday");
dayNames.add("Friday");
dayNames.add("Saturday");
days = dayNames.elements();
while (days.hasMoreElements()) {
System.out.println(days.nextElement());
}
}
}
---------------OUTPUT---------------
H H Heavy Light [LVehicleClassEnum;@3ce53108 VehicleClassEnum:H, VehicleClassEnum.toStirng()H, VehicleClassEnum.name():H, VehicleClassEnum.ordinal():0, getDeclaringClass:class VehicleClassEnum, getDescription():Heavy, compareTo:-1 VehicleClassEnum:L, VehicleClassEnum.toStirng()L, VehicleClassEnum.name():L, VehicleClassEnum.ordinal():1, getDeclaringClass:class VehicleClassEnum, getDescription():Light, compareTo:0 VehicleClassEnum:N, VehicleClassEnum.toStirng()N, VehicleClassEnum.name():N, VehicleClassEnum.ordinal():2, getDeclaringClass:class VehicleClassEnum, getDescription():Not Specified, compareTo:1 Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Subscribe to:
Posts (Atom)
