11g crsctl status output formated
This script will format the new 11G crsctl status resource in a tabular format.
#!/usr/bin/ksh
#
# Sample 11g CRS resource status query script
#
# Description:
# – Returns formatted version of crsctl status resource, in tabular
# format, with the complete rsc names and filtering keywords
# – The argument, $RSC_KEY, is optional and if passed to the script, will
# limit the output to HA resources whose names match $RSC_KEY.
# Requirements:
# – $ORA_CRS_HOME should be set in your environment
#
#
# HISTORY ##################################
#
# 28/06/2010 – Alex Lima – UPgraded to 11G commands.
#
################################################################
export CRS_HOME=/usr/grid/product/11.2.0
RSC_KEY=$1
QSTAT=-u
AWK=/usr/bin/awk # if not available use /usr/xpg4/bin/awk
# Table header:echo “”
echo “”
$AWK \
‘BEGIN {printf “%-30s %-70s %-18s\n”, “HA Resource”, “State”, “Target”;
printf “%-30s %-70s %-18s\n”, “———–”, “—–”, “——”;}’
# Table body:
$CRS_HOME/bin/crsctl status resource | $AWK \
‘BEGIN { FS=”=”; state = 0; }
$1~/NAME/ && $2~/’$RSC_KEY’/ {appname = $2; state=1};
state == 0 {next;}
$1~/STATE/ && state == 2 {appstate = $2; state=3;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
state == 3 {printf “%-30s %-70s %-18s\n”, appname, appstate, apptarget; state=0;}’
echo “”
How to use dbms_monitor and dbms_session to turn on trace?
Using dbms_monitor.client_id_trace_enable to turn trace on for all sessions that have client identifier set to 'debug' and using dbms_session.set_identifier which will turn on trace for session.
Example:
To setup trace for client identifier
SQL> exec dbms_monitor.client_id_trace_enable('debug', true, true);
PL/SQL procedure successfully completed.
– displays list of client identifers for which trace can be turned on
SQL> select trace_type, primary_id, waits, binds from dba_enabled_traces;
TRACE_TYPE
———————
PRIMARY_ID WAITS BINDS
—————————————————————- —– —–
CLIENT_ID
debug TRUE TRUE
PL/SQL procedure successfully completed.
In another session in which you want to turn on trace
– set client identifier on a session which will turn on trace
SQL> exec dbms_session.set_identifier('debug');
PL/SQL procedure successfully completed.
SQL> select sysdate from dual;
SYSDATE
———
20-JUN-10
To turn off trace
– to disable trace
SQL> exec dbms_monitor.client_id_trace_disable('debug');
Oracle OpenWorld 2010
How to monitor temp tablespace usage?
At times you may have a scenario where you may want to monitor temp space usage in a running session. So using the following PL/SQL code loops which inserts every interval on temp usage for a specific sid (session id).
create table monitor_usage (
RUN_DATE DATE,
BLOCKS NUMBER(38),
BYTES NUMBER(38),
APP VARCHAR2(10)
);
declare
cursor l_cur IS SELECT sysdate, b.blocks, b.blocks*d.value bytes
FROM v$session a, (select session_addr, sum(blocks) blocks from v$tempseg_usage group by session_addr) b, v$sqlarea c,
(select value from v$parameter where name=’db_block_size’) d
WHERE a.saddr = b.session_addr
and a.sid = &sid
AND c.address= a.sql_address
AND c.hash_value = a.sql_hash_value
AND b.blocks*d.value > 1024;
l_rec l_cur%rowtype;
app varchar2(2) := ‘&1′;
interval integer := 10;
begin
while true loop
open l_cur;
fetch l_cur into l_rec;
If l_cur%found THEN
insert into monitor_usage values (l_rec.sysdate, l_rec.blocks, l_rec.bytes, app);
commit;
end if;
DBMS_LOCK.sleep(seconds => interval);
close l_cur;
end loop;
end;
/
Example:
SQL> alter session set nls_Date_format=’DD-MON-YYY
Session altered.
SQL> select * from monitor_usage where app = ‘R1′
RUN_DATE BLOCKS BYTES APP
——————– ———- ———- ——-
15-JUN-2010 10:21:21 1792 14680064 R1
15-JUN-2010 10:21:32 8576 70254592 R1
…
15-JUN-2010 10:27:52 119808 981467136 R1
15-JUN-2010 10:28:04 122240 1001390080 R1
15-JUN-2010 10:28:15 124672 1021313024 R1
…
15-JUN-2010 10:29:59 33920 277872640 R1
15-JUN-2010 10:30:10 34048 278921216 R1
Script to find Oracle Bind Variables
Filed under: General DBA, PL/SQL, Scripts, SQL*Plus, Tuning
I use this simple script to find bind variables with or without sql_id.
select
sql_id,
t.sql_text SQL_TEXT,
b.name BIND_NAME,
b.value_string BIND_STRING
from
v$sql t
join v$sql_bind_capture b
using (sql_id)
where
b.value_string is not null
– and sql_id=’974ju5zc5whfn’;
How does one move SQL Profiles from one instance to another
If you need to generate SQL Profiles and then move to another instance below are the procedures. Just keep in mind that in the example below i generated the SQL Profiles in advance (5) then restored and imported to the same instance.
1- Already had the table so I dropped
SYS@ELSIPOC1 SQL> drop table alex.sql_profiles;
Table dropped.
2- Create the staging table
SYS@ELSIPOC1 SQL> SYS@ELSIPOC1 SQL> BEGIN
2 DBMS_SQLTUNE.CREATE_STGTAB_SQLPROF (
3 table_name => ‘SQL_PROFILES’,
4 schema_name=>’ALEX’);
5 END;
6 /
PL/SQL procedure successfully completed.
3- Packed all the existing SQL profiles in the staging table
SYS@ELSIPOC1 SQL>
SYS@ELSIPOC1 SQL> BEGIN
2 DBMS_SQLTUNE.PACK_STGTAB_SQLPROF (
3 profile_category => ‘%’,
4 staging_table_name => ‘SQL_PROFILES’,
5 staging_schema_owner=>’ALEX’);
6 END;
7 /
PL/SQL procedure successfully completed.
4- Count the staging table
SYS@ELSIPOC1 SQL> select count(*) from alex.sql_profiles;
COUNT(*)
———-
5
SYS@ELSIPOC1 SQL>exit
5- Export the staging table
[spocoradb1.aeso.ca]/dbadmin/workspace2/RAT/capture/CDMS>expdp system/abc123 dumpfile=expdp_sql_profiles.dmp TABLES=ALEX.SQL_PROFILES DIRECTORY=CDMS_REPLAY
Export: Release 11.2.0.1.0 – Production on Tue Jun 8 11:14:04 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
Starting “SYSTEM”.”SYS_EXPORT_TABLE_01″: system/******** dumpfile=expdp_sql_profiles.dmp TABLES=ALEX.SQL_PROFILES DIRECTORY=CDMS_REPLAY
Estimate in progress using BLOCKS method…
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 384 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported “ALEX”.”SQL_PROFILES” 98.50 KB 5 rows
Master table “SYSTEM”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TABLE_01 is:
/dbadmin/workspace2/RAT/capture/CDMS/expdp_sql_profiles.dmp
Job “SYSTEM”.”SYS_EXPORT_TABLE_01″ successfully completed at 11:14:53
###
6- Restore the database to a backup taken before All 5 SQL profiles were generated###
7- Truncate all the records from staging table
SYS@ELSIPOC1 SQL> truncate table alex.sql_profiles;
Table truncated.
SYS@ELSIPOC1 SQL> exit
8- import the staging table
[spocoradb1.aeso.ca]/dbadmin/workspace2/RAT/capture/CDMS>impdp system/abc123 dumpfile=expdp_sql_profiles.dmp TABLES=ALEX.SQL_PROFILES DIRECTORY=CDMS_REPLAY TABLE_EXISTS_ACTION=REPLACE
Import: Release 11.2.0.1.0 – Production on Tue Jun 8 11:22:49 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
Master table “SYSTEM”.”SYS_IMPORT_TABLE_01″ successfully loaded/unloaded
Starting “SYSTEM”.”SYS_IMPORT_TABLE_01″: system/******** dumpfile=expdp_sql_profiles.dmp TABLES=ALEX.SQL_PROFILES DIRECTORY=CDMS_REPLAY TABLE_EXISTS_ACTION=REPLACE
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported “ALEX”.”SQL_PROFILES” 98.50 KB 5 rows
Job “SYSTEM”.”SYS_IMPORT_TABLE_01″ successfully completed at 11:22:54
[spocoradb1.aeso.ca]/dbadmin/workspace2/RAT/capture/CDMS>
9- Drop the 2 existing SQL profiles that were in the instance when backup was taken.
SYS@ELSIPOC1 SQL> BEGIN
dbms_sqltune.drop_sql_profile(‘SYS_SQLPROF_0228d51a0db60000′, TRUE);
END;
/ 2 3 4
PL/SQL procedure successfully completed.
SYS@ELSIPOC1 SQL> BEGIN
dbms_sqltune.drop_sql_profile(‘SYS_SQLPROF_0128d2628b7e0000′, TRUE);
END;
/ 2 3 4
PL/SQL procedure successfully completed.
10- Unpack the SQL profiles from the staging table
SYS@ELSIPOC1 SQL> BEGIN
DBMS_SQLTUNE.UNPACK_STGTAB_SQLPROF(
staging_table_name => ‘SQL_PROFILES’,
staging_schema_owner=>’ALEX’,
replace=>FALSE);
END;
/ 2 3 4 5 6 7
PL/SQL procedure successfully completed.
SYS@ELSIPOC1 SQL>
And you should be done…….
Oracle RAT Workload Replay with filters
Here is a manual procedures to replay a workload capture without a specific user, by adding filter.
1- ### Create Filter
BEGIN
DBMS_WORKLOAD_REPLAY.ADD_FILTER (
fname => ‘user_web_proxy_exclude_from_replay’,
fattribute => ‘USER’,
fvalue => ‘WEB_PROXY’);
END;
/
2- ### Create filter set, this operation needs to be done when no replay is initialized, prepared or in progress.
BEGIN
DBMS_WORKLOAD_REPLAY.CREATE_FILTER_SET (
replay_dir=> ‘RAT_CDMS_PROD_DIR’,
filter_set => ‘user_web_proxy_filter_set_1′,
default_action => ‘INCLUDE’);
END;
/
3- ### initialize replay
BEGIN
dbms_workload_replay.initialize_replay(
replay_name=>’ELSIPOC_0607_1′,
replay_dir=> ‘RAT_CDMS_PROD_DIR’);
end;
/
4- ### enable use of the filter, this procedure should be called after the replay has been initialized and before it is prepared.
BEGIN
DBMS_WORKLOAD_REPLAY.USE_FILTER_SET (
filter_set => ‘user_web_proxy_filter_set_1′);
END;
/
5- ### Remap all connetions, find the content of the file below.
@/dbadmin/workspace2/RAT/capture/CDMS_PROD/conn-remap.sql
6- ### Prepare the replay
begin
DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (
synchronization=> TRUE,
connect_time_scale => 15,
think_time_scale =>0,
think_time_auto_correct => TRUE,
scale_up_multiplier => 1);
end;
/
7- ### Run WRC clients
nohup wrc system/abc123@spocoraclu-scan.aeso.ca:1521/ELSIPOC.AESO DEBUG=ON \
REPLAYDIR=/dbadmin/workspace2/RAT/capture/CDMS_PROD \
WORKDIR=/dbadmin/workspace2/RAT/capture/logs/0607 > /tmp/zzz.log &
8- ### Start replay
begin
dbms_workload_replay.start_replay;
end;
/
### Content of the connection file ###
[spocoradb1.aeso.ca]/dbadmin/workspace2>cat /dbadmin/workspace2/RAT/capture/CDMS_PROD/conn-remap.sql
exec dbms_workload_replay.remap_connection(connection_id=>1, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>2, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>3, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>4, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>5, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>6, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>7, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>8, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>9, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>10, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>11, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>12, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>13, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>14, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>15, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>16, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>17, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>18, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>19, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>20, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>21, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>22, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>23, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>24, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>25, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>26, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>27, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>28, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>29, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
exec dbms_workload_replay.remap_connection(connection_id=>30, replay_connection => ‘(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = spocoraclu-scan.aeso.ca)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ELSIPOC.AESO)))’);
[spocoradb1.aeso.ca]/dbadmin/workspace2>
OpenWorld 2008 from our lens
You still can submit Papers for OpenWorld 2010
The deadline for submission is June 20.
Missed the Call for Papers Deadline? Don’t Despair!


