Regarding JVM TUNNING
I WANT TO INCREASE THE HEAP SIZE OF JVM .PLZ LET ME KNOW ASAP
Saypank wrote:
Already One function had in database now days it takes more time to execute
Please guide me how i tunning this code Are you sure that you want to put the code in beer casks?
http://www.yourdictionary.com/tunning
Assuming not.
HOW TO: Post a SQL statement tuning request
HOW TO: Post a SQL statement tuning request - template posting
When your query takes too long
When your query takes too long ...
Though looking at it quickly the main thing you want to do is remove all the loops and use set based SQL statements instead.
And remove all the when others exception hiders too.
http://tkyte.blogspot.com/2008/01/why-do-people-do-this.html
http://tkyte.blogspot.com/2008/06/when-others-then-null-redux.html
Similar Messages
-
Regarding Performance Tunning of Mapping & Process Flow
Hi,
i have around 60-70 GB data in Target database.
i need do improve the performance of Mapping and Process flow.
i have used lookup transformation in mapping.
Plz give me some tips for improving performance of Process.
Thanks,Please go through a Performance Tuning Book for Oracle 10gR2.
Most importantly remember that in Oracle 10g, your performace of mappings can be increased manifold by following these steps:
1. Do not design a mapping wherein you load a table and then select from that table to load another table and so on. This is a bad design.
2. Keep mappings as simple as possible. In other words if a mapping is complicated in terms of joins or other operators then split the mapping into more than one parts.
3. Also check that all your source tables should be analyzed using DBMS_STATS. Ensuring this one single step can make your work very easy.
4. Put indexes where you find your predicate has a very high selectivity. Also keep in mind the column ordering of the index.
5. Use Set Based operation, since it is always a good idea to achieve the result by running one single query rather than a loop and multiple inserts.
6. Use APPEND PARALLEL hint while loading the target tables. This will not generate wny redo and save time
7. Please have a recheck while usng some performance intensive operators like UNION, DISTINCT and AGGREGATION
8. When using a sequence operator to load a large table, check that the sequence should be cached with some values.
9. When loading large data HASH JOINS are the most appropriate more often than not. So you can use USE_HASH as the hint for selecting from large tables.
10. Filter out as much unrequired data from a table as soon as possible in the mapping before doing multiple joins.
I am sure there are many more ... the above is just a random list that I could remember now. Please go through Oracle Performance Tuning Guide, Tom Kyte's Oracle Expert One on One. Knowledge of performance tuning will grow with experience. I am also learning each day !!!
Regards
AP -
Regarding Performance tunning...
HI Experts,
can you suggest me, how exactly performance is checked.
what is the measure we considered for performance check.
what are ideals status of the performance check for a certain program.
that is, how much should be database use, abap use and the system
use in the program.
i checked my program in t-code SE30, and it is showing almost
above 90% use of database and very less use of abap and
almost no use of system.
so please tell me exactly how much it should be...
Thanks in advance.
Regard,
vijay chavanHi
these are the ways of checking performance of a report
Tools for Performance Analysis
Run time analysis transaction SE30
SQL Trace transaction ST05
Extended Program Check (SLIN)
Code Inspector ( SCI)
<b>Run time analysis transaction SE30</b> :This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
<b>SQL Trace transaction ST05</b>: The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on a particular database table of the ABAP program would be mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
<b>Extended Program Check</b>
This can be called in through transaction SE38 or through transaction SLIN. This indicates possible problems that may cause performance problems.
<b>Code Inspector (SCI)</b>
You can call the Code Inspector from the ABAP Editor (SE38), the Function Builder (SE37), the Class Builder (SE24), or as a separate transaction (SCI).
The Code Inspector indicates possible problems. However, note that, especially with performance issues: There is no rule without exception. If a program passes an inspection, it does not necessarily mean that this program will have no performance problems.
<b>Run time analysis transaction SE30</b>
<b>steps</b>
In Transaction SE30, fill in the transaction name or the program name which needs to be analyzed for performance tuning.
For our case, let this be ZABAP_PERF_TUNING
Run time analysis transaction SE30
After giving the required inputs to the program, execute it. After the final output list has been displayed, PRESS the BACK button.
On the original SE30 screen, now click on ANALYZE button.
The percentage across each of the areas ABAP/ Database/System shows the percentage of total time used for those areas and load on these areas while running the program . The lesser the database load faster the program runs.
<b>SQL Trace ST05</b>
<b>steps</b>
<u>Starting the Trace:</u>
To analyze a trace file, do the following:
Choose the menu path Test  Performance Trace in the ABAP Workbench or go to Transaction ST05. The initial screen of the test tool appears. In the lower part of the screen, the status of the Performance Trace is displayed. This provides you with information as to whether any of the Performance Traces are switched on and the users for which they are enabled. It also tells you which user has switched the trace on.
Using the selection buttons provided, set which trace functions you wish to have switched on (SWL trace, enqueue trace, RFC trace, table buffer trace).
If you want to switch on the trace under your user name, choose Trace on. If you want to pass on values for one or several filter criteria, choose Trace with Filter. Typical filter criteria are: the name of the user, transaction name, process name, and program name.
Now run the program to be analyzed.
Stopping the Trace:
To deactivate the trace:
Choose Test Performance Trace in the ABAP Workbench. The initial screen of the test tool appears. It contains a status line displaying the traces that are active, the users for whom they are active, and the user who activated them.
Select the trace functions that you want to switch off.
Choose Deactivate Trace. If you started the trace yourself, you can now switch it off immediately. If the performance trace was started by a different user, a confirmation prompt appears before deactivation-
<u>Analyzing a Sample trace data:</u>
PREPARE: Prepares the OPEN statement for use and determines the access method.
OPEN: Opens the cursor and specifies the selection result by filling the selection fields with concrete values.
FETCH: Moves the cursor through the dataset created by the OPEN operation. The array size displayed beside the fetch data means that the system can transfer a maximum package size of 392 records at one time into the buffered area.
<b>Reward if useful</b> -
Hello
Already One function had in database now days it takes more time to execute
Please guide me how i tunning this code
Please check my code
I have check all code and indexces they are exactly pick up
FUNCTION balances (p_set_of_books_id IN NUMBER,
p_period_name IN VARCHAR2,
p_business_id IN VARCHAR2,
p_partition_key IN VARCHAR2)
RETURN NUMBER IS
---Cursor to select the period passed as paramete and last six periods.
CURSOR c_periods(p_period_name VARCHAR2) IS
SELECT period_name
FROM gl.gl_periods
WHERE period_set_name = 'GE_CALENDAR'
AND start_date <=
(SELECT start_date
FROM gl.gl_periods
WHERE period_set_name = 'GE_CALENDAR'
AND period_name = p_period_name)
AND end_date >= (SELECT end_date - 190
FROM gl.gl_periods
WHERE period_set_name = 'GE_CALENDAR'
AND period_name = p_period_name)
AND period_name NOT LIKE 'ADJ%';
-- Local variables --
v_error_code NUMBER := 1;
lv_count NUMBER := 0;
lv_tot_count NUMBER := 0;
lv_sub_pl VARCHAR2(25) := '';
lv_management_str VARCHAR2(25) := '';
tlm_rec_count number :=0 ;
gbal_rec_count number :=0 ;
gbal_any_run number :=0 ;
load_data varchar2(1) := 'Y';
BEGIN
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'starting insert into glc_smart_stream_bal_extract');
DELETE FROM XXCUSTOM.GLC_SMART_STREAM_BAL_EXTRACT
WHERE BUSINESS_CODE = P_BUSINESS_ID
AND PERIOD_NAME NOT IN
(SELECT period_name
FROM gl.gl_periods
WHERE period_set_name = 'GE_CALENDAR'
AND start_date <=
(SELECT start_date
FROM gl.gl_periods
WHERE period_set_name = 'GE_CALENDAR'
AND period_name = p_period_name)
AND end_date >=
(SELECT end_date - 190
FROM gl.gl_periods
WHERE period_set_name = 'GE_CALENDAR'
AND period_name = p_period_name)
AND period_name NOT LIKE 'ADJ%');
COMMIT;
FOR rec_periods IN c_periods(p_period_name)
LOOP
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'inserting records for period - ' ||
rec_periods.period_name);
tlm_rec_count := 0;
gbal_rec_count := 0;
gbal_any_run :=0 ;
load_data := 'N';
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'processing period ' || rec_periods.period_name||
'Started ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
BEGIN
-- Look if any record exist in the table for this Business and this period
SELECT COUNT(1)
INTO TLM_REC_COUNT
FROM XXCUSTOM.GLC_SMART_STREAM_BAL_EXTRACT
WHERE PERIOD_NAME = REC_PERIODS.PERIOD_NAME
AND BUSINESS_CODE = P_BUSINESS_ID;
EXCEPTION
WHEN OTHERS THEN
TLM_REC_COUNT := 0; -- FORCE PROCESSING
END;
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'tlm_rec_count for ' || rec_periods.period_name || ' - ' || tlm_rec_count||
'Started ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
if tlm_rec_count > 0 then -------There are more than 0 records in the table
begin
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'Starting to count gbal ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
select count(1) ----Selecting count of records in gl_balances table for which last update date is after this program was last run.
into gbal_rec_count
from gl.gl_balances
where period_name = rec_periods.period_name and
set_of_books_id = p_set_of_books_id and
last_update_date > (select last_run_time
from XXCUSTOM.glc_smart_stream_bal_ext_run
where business_code = p_business_id
-- and period_name=rec_periods.period_name
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'FOUND gbal_rec_count for ' || rec_periods.period_name || ' - ' || p_business_id || '- ' || gbal_rec_count||
'Started ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
EXCEPTION
WHEN OTHERS THEN
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'NOT FOUND gbal_rec_count for ' || rec_periods.period_name || ' - ' || p_business_id || '- ' || gbal_rec_count||
'Started ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
gbal_rec_count := 1; -- force reload of data
end;
if gbal_rec_count > 0 then --if there has been update in gl_balance table afte last_run_date then load data
load_data := 'Y';
end if;
else ---There are no records in the table , hence load
load_data := 'Y';
end if;
if load_data = 'Y' then ---Loading data as upload status set to Yes
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'loading data for ' || rec_periods.period_name||
'Started ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
Begin
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'deleting data ' || rec_periods.period_name||
'Started ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
delete from xxcustom.glc_smart_stream_bal_extract
where business_code = p_business_id and
period_name = rec_periods.period_name; --Deleting data from Table for this business and this period
commit;
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'deleted data ' || rec_periods.period_name||
'Ended ' || to_char(sysdate,'dd-mon-rr hh24:mi:ss'));
End;
--Inserting Records Into Table
INSERT INTO xxcustom.glc_smart_stream_bal_extract
(business_code,
period_name,
period_num,
period_year,
SET_OF_BOOKS_ID ,
SET_OF_BOOKS_NAME ,
ble,
bsla,
corp_code,
bus_code,
account,
cdr3,
loan_number,
account_flexfield,
currency,
rpt_end_balance,
center,
analysis,
other,
orig_end_balance,
orig_period_net_cr,
orig_period_net_dr,
account_description,
centre_deal_id,
functional_currency,
account_type,
sub_account,
analysis_desc,
cost_center_desc,
gaap_ind,
management_structure,
sub_pl,
cdr6,
cdr9,
code_combination_id,
rpt_open_balance,
orig_open_bal,
rpt_net_dr,
rpt_net_cr)
SELECT /* + INDEX(fvals1 FND_FLEX_VALUES_N1) INDEX(fvals2 FND_FLEX_VALUES_N1)
INDEX(fvals3 FND_FLEX_VALUES_N1) INDEX(fvals4 FND_FLEX_VALUES_N1)
INDEX(fvals5 FND_FLEX_VALUES_N1)*/
p_business_id business_code,
bal.period_name period_name,
bal.period_num period_num,
bal.period_year period_year,
gsob.set_of_books_id,
gsob.name,
gcc.segment1 ble,
fvals4.attribute4 bsla,
fvals4.attribute3 corp_code,
SUBSTR(gcc.segment1, 4, 3) bus_code,
gcc.segment3 ACCOUNT,
SUBSTR(gcc.segment3, 1, 3) cdr3,
fvals1.attribute2 loan_number,
segment1 || '.' || segment2 || '.' || segment3 || '.' ||
segment4 || '.' || segment5 account_flexfield,
bal.currency_code currency,
DECODE(bal.currency_code,
'USR',
0,
(BEGIN_BALANCE_DR_BEQ - BEGIN_BALANCE_CR_BEQ) + (PERIOD_NET_DR_BEQ - PERIOD_NET_CR_BEQ)) rpt_end_balance,
gcc.segment2 center,
gcc.segment4 analysis,
gcc.segment5 other,
DECODE(bal.currency_code,
'USR',
0,
(bal.begin_balance_dr - bal.begin_balance_cr) +
(bal.period_net_dr - period_net_cr)) orig_end_balance,
DECODE(bal.currency_code, 'USR', 0, bal.period_net_cr) orig_period_net_cr,
DECODE(bal.currency_code, 'USR', 0, bal.period_net_dr) orig_period_net_dr,
fvtl2.description account_description,
' ' centre_deal_id,
' ' functional_currency,
gcc.account_type account_type,
SUBSTR(gcc.segment3, 10, 3) sub_account,
fvtl3.description analysis_desc,
fvtl1.description cost_center_desc,
SUBSTR(gcc.segment1, 10, 1) gaap_ind,
' ' management_structure,
' ' sub_pl,
SUBSTR(gcc.segment3, 1, 6) cdr6,
SUBSTR(gcc.segment3, 1, 9) cdr9,
gcc.code_combination_id code_combination_id,
DECODE(BAL.CURRENCY_CODE,
'USR',0,
BAL.BEGIN_BALANCE_DR_BEQ - BAL.BEGIN_BALANCE_CR_BEQ) rpt_open_balance,
DECODE(BAL.CURRENCY_CODE,
'USR',
0,
BAL.BEGIN_BALANCE_DR - BAL.BEGIN_BALANCE_CR) orig_open_bal,
DECODE(BAL.CURRENCY_CODE,
'USR',0,
BAL.PERIOD_NET_DR_BEQ) rpt_net_dr,
DECODE(BAL.CURRENCY_CODE,
'USR',0,
BAL.PERIOD_NET_CR_BEQ) rpt_net_cr
FROM gl.gl_balances bal,
gl.gl_code_combinations gcc,
gl.gl_sets_of_books gsob,
applsys.fnd_flex_value_sets fsets1,
applsys.fnd_flex_values fvals1,
applsys.fnd_flex_values_tl fvtl1,
applsys.fnd_flex_value_sets fsets2,
applsys.fnd_flex_values fvals2,
applsys.fnd_flex_values_tl fvtl2,
applsys.fnd_flex_value_sets fsets3,
applsys.fnd_flex_values fvals3,
applsys.fnd_flex_values_tl fvtl3,
applsys.fnd_flex_value_sets fsets4,
applsys.fnd_flex_values fvals4,
applsys.fnd_flex_values_tl fvtl4,
applsys.fnd_flex_value_sets fsets5,
applsys.fnd_flex_values fvals5,
applsys.fnd_flex_values_tl fvtl5
WHERE bal.set_of_books_id = p_set_of_books_id
AND gsob.set_of_books_id= bal.set_of_books_id
AND bal.period_name = rec_periods.period_name
AND bal.code_combination_id = gcc.code_combination_id
AND bal.actual_flag = 'A'
AND bal.template_id IS NULL
AND (gcc.segment3 BETWEEN '000000000000' AND '499999999ZZZ' OR gcc.segment3 like '988%')
--AND gcc.segment1 like 'R%'
AND gcc.summary_flag = 'N'
AND fsets1.flex_value_set_name = 'GECS_CENTER'
AND fvtl1.LANGUAGE = 'US'
AND fsets2.flex_value_set_name = 'GE_ACCOUNT'
AND fvtl2.LANGUAGE = 'US'
AND fsets3.flex_value_set_name = 'GECS_ANALYSIS'
AND fvtl3.LANGUAGE = 'US'
AND fsets4.flex_value_set_name = 'GE_BLE_PARAMETERS'
AND fvtl4.LANGUAGE = 'US'
AND SUBSTR(gcc.segment1, 1, 9) = fvals4.flex_value
AND fsets5.flex_value_set_name = 'GECS_BSLA_BIZ_MAPPING'
AND fvtl5.LANGUAGE = 'US'
AND fvals5.attribute1 = 'EFS'
AND fsets1.flex_value_set_id = fvals1.flex_value_set_id
AND fvals1.flex_value_id = fvtl1.flex_value_id
--AND fvals1.ENABLED_FLAG = 'Y'
AND gcc.segment2 = fvals1.flex_value
AND fsets2.flex_value_set_id = fvals2.flex_value_set_id
AND fvals2.flex_value_id = fvtl2.flex_value_id
--AND fvals2.enabled_flag = 'Y'
AND gcc.segment3 = fvals2.flex_value
AND fsets3.flex_value_set_id = fvals3.flex_value_set_id
AND fvals3.flex_value_id = fvtl3.flex_value_id
--AND fvals3.enabled_flag = 'Y'
AND gcc.segment4 = fvals3.flex_value
AND fsets4.flex_value_set_id = fvals4.flex_value_set_id
AND fvals4.flex_value_id = fvtl4.flex_value_id
--AND fvals4.enabled_flag = 'Y'
AND fsets5.flex_value_set_id = fvals5.flex_value_set_id
AND fvals5.flex_value_id = fvtl5.flex_value_id
--AND fvals5.enabled_flag = 'Y'
AND fvals4.attribute4 = fvals5.flex_value;
COMMIT;
END IF ;
COMMIT;
END LOOP;
--Insert/Update last_run_time to sysdate for businesses
BEGIN
SELECT COUNT(1)
INTO gbal_any_run
FROM XXCUSTOM.glc_smart_stream_bal_ext_run
WHERE BUSINESS_CODE = p_business_id;
IF (gbal_any_run > 0) THEN
UPDATE XXCUSTOM.glc_smart_stream_bal_ext_run
SET LAST_RUN_TIME = SYSDATE
WHERE BUSINESS_CODE = p_business_id;
COMMIT;
ELSE
INSERT INTO XXCUSTOM.glc_smart_stream_bal_ext_run
(BUSINESS_CODE, LAST_RUN_TIME)
VALUES
(P_BUSINESS_ID, SYSDATE);
COMMIT;
END IF;
END;
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'commited records ' || lv_tot_count ||
' into into glc_smart_stream_bal_extract');
RETURN 0;
EXCEPTION
WHEN OTHERS THEN
apps.fnd_file.put_line(which => apps.fnd_file.log,
buff => 'ERROR IN populate_' || p_business_id ||
'_balances' || '-' || SQLCODE || '-' ||
SQLERRM);
RETURN 2;
END balances ;Saypank wrote:
Already One function had in database now days it takes more time to execute
Please guide me how i tunning this code Are you sure that you want to put the code in beer casks?
http://www.yourdictionary.com/tunning
Assuming not.
HOW TO: Post a SQL statement tuning request
HOW TO: Post a SQL statement tuning request - template posting
When your query takes too long
When your query takes too long ...
Though looking at it quickly the main thing you want to do is remove all the loops and use set based SQL statements instead.
And remove all the when others exception hiders too.
http://tkyte.blogspot.com/2008/01/why-do-people-do-this.html
http://tkyte.blogspot.com/2008/06/when-others-then-null-redux.html -
Hello !
Pardon me for this question . I want to know whether the JVM's available from Sun are different for different platforms ? Does Sun provides JVM's for all the available platforms ?
Thanks.I've never managed to find an official list of supported Java platforms but this private site seems quite informed.
http://www.geocities.com/marcoschmidt.geo/jvm.html -
Dear Sir
I have HP Pavelion dv4 1318tu laptop and i want to know integrated tv tuner is present in this model or not???
please reply
thanksHere is another Thread about the same problem. This has been an ON-Going problem. Here is the other thread:
Home > Notebook > TV/Media Center > Pavilion dv7t - no TV tuner signal
http://h30434.www3.hp.com/t5/Notebook-TV-Tuners-and-Media/Pavilion-dv7t-no-TV-tuner-signal/td-p/1883...
If you have a problem with your Integral TV Tuner, Have HP support connect you with the Escalation Team and they offer vouchers and the USB HP TV Tuner.
The problem is the design of the Port and connector. Why I had to waste my time sending my unit twice back and get no permanent solution is just outrageously incompetent when they knew they had a problem -
Is JVM shared accross Managed Server
Hi Guys,
I have a basic question wrt the JVM usage in weblogic cluster.
I have have configured cluster environment in a single Weblogic Domain with 2 managed server in a single box.
In such case will the 2 managed server share the same JVM or each managed server will have its own JVM?
Regards
Suresh.Hi Suresh,
Every WLS Server is a Java Program .. and it runs on it's own JVM. Thats why we have an option to allocate different Heap and JVM Tunning settings for Separate WLS instances even if they are on the same Physical box or remote.
But it doesn't mean that u need to install JDK two times in your Box for every Managed Server. Both the Managed Servers can use the same JAVA_HOME.
Thanks
Jay SenSharma
http://weblogic-wonders.com/ (Wonders Are here) -
Please tell me about the jvm architecture
i need some help regarding jvm architecture. can anybody explain it for me. i am very new to java so that i am asking like this
That's a very broad, vague question.
http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html -
I new to Java,I have one basic doubt regarding JVM,
Is JVM designed by the OS developers or SUN itself design the different JVMs for the different Operating Systems?Hi harish...
Because of Java portability feature .. the java program's transformation process, from source code to machine executable, into 2 steps....
* 1 .Step..
i.e example.java to example.class ( using "javac" compiler it is converted to "bytecode" i.e "class" file)
there is nothing big deal about this "class" file (bytecode).Its just a simple flat file having JVM(java virtual machine) instructions and symbol table of java's flavour( also called runtime constant pool table, having references to runtime variables and methods etc.. that is need at linking process, to execute the program)...
* 2.Step..
tranforms the class file ie..
from example.class to machine executable(using JVM )
JVM is interpreter that reads JVM instructions from the class file and transfroms them into appropriate machine equivalent code of the host machine...
purly speaking interpreter is more robust than compiler .. for extremely runtime error prone programs...and more over JVM instructions are siblings to assembly code and thus requires interpreter rathar than compiler...because at the end of the any CPU executes only one instruction at a time....
Hope I answered your question..... -
Jrockit crashes due to outofmemory and illegal memory acces
Hello,
We have been using jrmc-3.1.2-1.6.0 and lately we are seeing JVM crashes after every couple days. Note: We have been seeing these crashes recently , for last 1 year we did not see such crashes.
Following are different issues that we have seen over last few days:
1. Crash due to illegal memory access
2. Crash due to out of memory error
3. Sever becoming unresponsive/Idle
For illegal memory access and out of memory crashes, there was jRockit dump file created and Dump file seems to be pointing at Jrockit libjvm.so module for the exception/crash.
Any help would be appreciated!
*** Dump for Illegal Memory Access
Error Message: Illegal memory access. [54]
Signal info : si_signo=11, si_code=1 si_addr=0x10
Version : BEA JRockit(R) R27.6.5-32_o-121899-1.6.0_14-20091001-2113-linux-ia32
CPU : Intel Core i7 (HT) SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 Core Intel64
Number CPUs : 4
Tot Phys Mem : 12762509312 (12171 MB)
OS version : Red Hat Enterprise Linux Server release 5.6 (Tikanga)
Linux version 2.6.18-164.15.1.el5PAE ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Mon Mar 1 11:14:09 EST 2010 (i686)
Thread System: NPTL
Java locking : Lazy unlocking enabled (class banning) (transfer banning)
State : JVM is running
Command Line : -Djava.util.logging.config.file=/usr/local/springsource/tcServer-6.0/zplus/conf/logging.properties -Djava.util.logging.manager=com.springsource.tcserver.serviceability.logging.TcServerLogManager -Xmx2048m -Xms2048m -Djava.rmi.server.hostname=300714-web8.echovox.com -XgcPrio:pausetime -DTERRACOTTA_URL=338449-web10.echovox.com:9510,338450-web11.echovox.com:9510 -Dapp_version= -Xmanagement -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dehcache.monitor.enabled=True -Djava.endorsed.dirs=/usr/local/springsource/tcServer-6.0/tomcat-6.0.20.A/endorsed -Dcatalina.base=/usr/local/springsource/tcServer-6.0/zplus -Dcatalina.home=/usr/local/springsource/tcServer-6.0/tomcat-6.0.20.A -Djava.io.tmpdir=/usr/local/springsource/tcServer-6.0/zplus/temp -Dsun.java.launcher=SUN_STANDARD org.apache.catalina.startup.Bootstrap start
java.home : /usr/local/jrmc-3.1.2-1.6.0/jre
j.class.path : :/usr/local/springsource/tcServer-6.0/tomcat-6.0.20.A/bin/bootstrap.jar
j.lib.path : /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/jrockit:/usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386:/usr/local/jrmc-3.1.2-1.6.0/jre/../lib/i386
JAVA_HOME : <not set>
JAVAOPTIONS: <not set>
LD_LIBRARY_PATH: /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/jrockit:/usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386:/usr/local/jrmc-3.1.2-1.6.0/jre/../lib/i386
LD_PRELOAD : <not set>
LD_ASSUME_KERNEL: <not set>
StackOverFlow: 0 StackOverFlowErrors have occured
OutOfMemory : 0 OutOfMemoryErrors have occured
C Heap : Good; no memory allocations have failed
GC Strategy : Mode: pausetime. Currently using strategy: genconcon
GC Status : OC currently running, in phase: marking. This is OC#2905.
: YC is not running. Last finished YC was YC#100045.
OC History : Strategy genconcon was used for OC#2776.
: Strategy genconpar was used for OC#2777 to OC#2781.
: Strategy genconcon was used for OC#2782 to OC#2783.
: Strategy genconpar was used for OC#2784 to OC#2790.
: Strategy genconcon was used for OC#2791 to OC#2905.
YC History : Ran 1 YCs before OC#2901.
: Ran 0 YCs before OC#2902.
: Ran 1 YCs before OC#2903.
: Ran 0 YCs before OC#2904.
: Ran 2 YCs before OC#2905.
YC Promotion : Last YC successfully promoted all objects
Heap : 0x8b00000 - 0x88b00000 (Size: 2048 MB)
Compaction : 0x49b00000 - 0x51b00000 (Current compaction type: internal)
NurseryList : 0xaf67e18 - 0x8226c988
KeepArea : 0x817031e8 - 0x8226c988
NurseryMarker: [ 0x80d031f0, 0x817031e8 ]
CompRefs : References are 32-bit.
Registers (from ThreadContext: 0x96b75420 / OS context: 0x96b7551c):
eax = 00000000 ecx = ffffffcc edx = 8b80eb78 ebx = 8b80eb78
esp = 96b75814 ebp = 96b75960 esi = 96b75a48 edi = 00000000
es = 0000007b cs = 00000073 ss = 0000007b ds = 0000007b
fs = 00000000 gs = 00000033
eip = b7d3a397 eflags = 00210296
Loaded modules:
(* denotes the module causing the exception)
08048000-08058233 /usr/local/jrmc-3.1.2-1.6.0/jre/bin/java
b7f24000-b7f2462b /usr/local/jrmc-3.1.2-1.6.0/jre/bin/java
00754000-00768f17 /lib/libpthread.so.0
006b2000-006d8a23 /lib/libm.so.6
006ab000-006ad0fb /lib/libdl.so.2
00550000-006a2723 /lib/libc.so.6
00531000-0054b4f7 /lib/ld-linux.so.2
b7c46000-b7e9fea7 */usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/jrockit/libjvm.so
007a3000-007a9ebf /lib/librt.so.1
b722f000-b723839b /lib/libnss_files.so.2
b7118000-b71229bb /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libverify.so
b70f3000-b7115f57 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libjava.so
007ae000-007c27a7 /lib/libnsl.so.1
b723e000-b7243ef0 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/native_threads/libhpi.so
b59f0000-b59fe3e4 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libzip.so
b5805000-b580a666 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libmanagement.so
b5224000-b5236a18 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libnet.so
b723c000-b723c6ad /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/librmi.so
b2d42000-b2d45c2f /lib/libnss_dns.so.2
b2d2e000-b2d3d74b /lib/libresolv.so.2
b2d4a000-b2d503a4 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libnio.so
b1f9d000-b1fc5857 /usr/local/springsource/tcServer-6.0/zplus/temp/tmpSigarJars841342613926113968186721535772/libsigar-x86-linux-1.6.4.so
Stack:
(* marks the word pointed to by the stack pointer)
96b75814: b7cbce41* 00000000 006772e2 b04dbab8 006a4ff4 00000030
96b7582c: 00000002 96b758a0 00000000 00000000 00010000 0061eea8
96b75844: b7e48510 00010000 00000000 0061eeb9 b7d8f0f8 20000000
96b7585c: 00010000 00000000 00004022 ffffffff 00000000 96b75890
Code:
(* marks the word pointed to by the instruction pointer)
b7d3a364: c0a108ec e8b7f0fe ffffffa0 f0fed4a1 ff96e8b7 b8c9ffff
b7d3a37c: 00000001 900debc3 90909090 90909090 90909090 8be58955
b7d3a394: 8b5d0845* d2851050 0fc0950f b60fc0b6 768dc3c0 27bc8d00
b7d3a3ac: 00000000 53e58955 0134ec81 9d8d0000 fffffee8 04245c89
"RMI TCP Connection(idle)" id=440712 idx=0x7c4 tid=825 lastJavaFrame=0x96b75ecc
Stack 0: start=0x96b54000, end=0x96b78000, guards=0x96b59000 (ok), forbidden=0x96b57000
Thread Stack Trace:
at jniExceptionCheck+7()@0xb7d3a397
at cmgrGenerateCode+260()@0xb7cbe024
at generate_code2+937()@0xb7da6c99
at generate_code+97()@0xb7da6f11
at get_runnable_codeinfo2+275()@0xb7da74c3
at call_java+317()@0xb7d42f0d
at jniInvoke+110()@0xb7d451be
-- Java stack --
at jrockit/vm/Reflect.invokeMethod(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Native Method)
at sun/reflect/NativeConstructorAccessorImpl.newInstance0(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;(Native Method)
at sun/reflect/NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun/reflect/DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[optimized]
at java/lang/reflect/Constructor.newInstance(Constructor.java:513)[optimized]
at java/lang/Class.newInstance0(Class.java:355)[inlined]
at java/lang/Class.newInstance(Class.java:308)[optimized]
at sun/reflect/MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381)
at jrockit/vm/AccessController.doPrivileged(AccessController.java:233)[inlined]
at jrockit/vm/AccessController.doPrivileged(AccessController.java:241)[inlined]
at sun/reflect/MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)[optimized]
at sun/reflect/MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:59)
at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:28)
at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[optimized]
at java/lang/reflect/Method.invoke(Method.java:597)[inlined]
at java/io/ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)[inlined]
at java/io/ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)[optimized]
at java/io/ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)[inlined]
at java/io/ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)[inlined]
at java/io/ObjectOutputStream.writeObject(ObjectOutputStream.java:326)[optimized]
at sun/rmi/server/UnicastRef.marshalValue(UnicastRef.java:274)
at sun/rmi/server/UnicastServerRef.dispatch(UnicastServerRef.java:315)
at sun/rmi/transport/Transport$1.run(Transport.java:159)
at jrockit/vm/AccessController.doPrivileged(AccessController.java:255)[optimized]
at sun/rmi/transport/Transport.serviceCall(Transport.java:155)
at sun/rmi/transport/tcp/TCPTransport.handleMessages(TCPTransport.java:535)
at sun/rmi/transport/tcp/TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun/rmi/transport/tcp/TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[inlined]
at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[optimized]
at java/lang/Thread.run(Thread.java:619)[optimized]
at jrockit/vm/RNI.c2java(IIIII)V(Native Method)
-- end of trace
Extended, platform specific info:
libc release: 2.5-stable
Elf headers:
libc ehdrs: EI: 7f454c46010101000000000000000000 ET: 3 EM: 3 V: 1 ENTRY: 00565fe0 PHOFF: 00000034 SHOFF: 0019ccbc EF: 0x0 HS: 52 PS: 32 PHN; 10 SS: 40 SHN: 75 STIDX: 74
libpthread ehdrs: EI: 7f454c46010101000000000000000000 ET: 3 EM: 3 V: 1 ENTRY: 00758850 PHOFF: 00000034 SHOFF: 00021474 EF: 0x0 HS: 52 PS: 32 PHN; 9 SS: 40 SHN: 40 STIDX: 39
libjvm ehdrs: EI: 7f454c46010101000000000000000000 ET: 3 EM: 3 V: 1 ENTRY: 0004c3a0 PHOFF: 00000034 SHOFF: 012c9a58 EF: 0x0 HS: 52 PS: 32 PHN; 4 SS: 40 SHN: 29 STIDX: 26
* If you see this dump, please go to *
* http://edocs.bea.com/jrockit/go2troubleshooting.html *
* for troubleshooting information. *
===== END DUMP ===============================================================
****** Dump for OutOfMemory error
Error Message: Out of memory [68]
Signal info : si_signo=11, si_code=1 si_addr=(nil)
Fatal Error : Reference Iteration refIterInit src/jvm/code/runtime/refiter.c:167
Version : BEA JRockit(R) R27.6.5-32_o-121899-1.6.0_14-20091001-2113-linux-ia32
CPU : Intel Core i7 (HT) SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 Core Intel64
Number CPUs : 4
Tot Phys Mem : 12762509312 (12171 MB)
OS version : Red Hat Enterprise Linux Server release 5.6 (Tikanga)
Linux version 2.6.18-164.15.1.el5PAE ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Mon Mar 1 11:14:09 EST 2010 (i686)
Thread System: NPTL
Java locking : Lazy unlocking enabled (class banning) (transfer banning)
State : JVM is running
Command Line : -Djava.util.logging.config.file=/usr/local/springsource/tcServer-6.0/zplus/conf/logging.properties -Djava.util.logging.manager=com.springsource.tcserver.serviceability.logging.TcServerLogManager -Xmx2048m -Xms2048m -Djava.rmi.server.hostname=300714-web8.echovox.com -XgcPrio:pausetime -DTERRACOTTA_URL=338449-web10.echovox.com:9510,338450-web11.echovox.com:9510 -Dapp_version= -Xmanagement -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dehcache.monitor.enabled=True -Djava.endorsed.dirs=/usr/local/springsource/tcServer-6.0/tomcat-6.0.20.A/endorsed -Dcatalina.base=/usr/local/springsource/tcServer-6.0/zplus -Dcatalina.home=/usr/local/springsource/tcServer-6.0/tomcat-6.0.20.A -Djava.io.tmpdir=/usr/local/springsource/tcServer-6.0/zplus/temp -Dsun.java.launcher=SUN_STANDARD org.apache.catalina.startup.Bootstrap start
java.home : /usr/local/jrmc-3.1.2-1.6.0/jre
j.class.path : :/usr/local/springsource/tcServer-6.0/tomcat-6.0.20.A/bin/bootstrap.jar
j.lib.path : /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/jrockit:/usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386:/usr/local/jrmc-3.1.2-1.6.0/jre/../lib/i386
JAVA_HOME : <not set>
JAVAOPTIONS: <not set>
LD_LIBRARY_PATH: /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/jrockit:/usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386:/usr/local/jrmc-3.1.2-1.6.0/jre/../lib/i386
LD_PRELOAD : <not set>
LD_ASSUME_KERNEL: <not set>
StackOverFlow: 0 StackOverFlowErrors have occured
OutOfMemory : 0 OutOfMemoryErrors have occured
C Heap : 1 memory allocations have failed
: First failure was a mmMalloc of 20 bytes
: Last failure was a mmMalloc of 20 bytes
GC Strategy : Mode: pausetime. Currently using strategy: genconpar
GC Status : OC is not running. Last finished OC was OC#1945.
: YC is not running. Last finished YC was YC#90824.
OC History : Strategy genconpar was used for OC#1745 to OC#1755.
: Strategy genparpar was used for OC#1756 to OC#1757.
: Strategy genconpar was used for OC#1758 to OC#1938.
: Strategy genparpar was used for OC#1939 to OC#1940.
: Strategy genconpar was used for OC#1941 to OC#1945.
YC History : Ran 1 YCs before OC#1941.
: Ran 6 YCs before OC#1942.
: Ran 4 YCs before OC#1943.
: Ran 6 YCs before OC#1944.
: Ran 4 YCs before OC#1945.
: Ran 5 YCs since last OC.
YC Promotion : Last YC successfully promoted all objects
Heap : 0x8100000 - 0x88100000 (Size: 2048 MB)
Compaction : 0x64100000 - 0x68100020 (Current compaction type: internal)
NurseryList : 0x8214640 - 0x84438f20
KeepArea : (no keeparea in use)
NurseryMarker: [ 0x827bfd10, 0x83996a00 ]
CompRefs : References are 32-bit.
Registers (from ThreadContext: 0x2a96c20 / OS context: 0x2a96d1c):
eax = 00001267 ecx = 00000000 edx = 00000042 ebx = b7eb0de4
esp = 02a97010 ebp = 02a97028 esi = 00000044 edi = 02a97078
es = 0000007b cs = 00000073 ss = 0000007b ds = 0000007b
fs = 00000000 gs = 00000033
eip = b7cfca45 eflags = 00010206
Loaded modules:
(* denotes the module causing the exception)
08048000-08058233 /usr/local/jrmc-3.1.2-1.6.0/jre/bin/java
b7f44000-b7f4462b /usr/local/jrmc-3.1.2-1.6.0/jre/bin/java
00754000-00768f17 /lib/libpthread.so.0
006b2000-006d8a23 /lib/libm.so.6
006ab000-006ad0fb /lib/libdl.so.2
00550000-006a2723 /lib/libc.so.6
00531000-0054b4f7 /lib/ld-linux.so.2
b7c66000-b7ebfea7 */usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/jrockit/libjvm.so
007a3000-007a9ebf /lib/librt.so.1
b724f000-b725839b /lib/libnss_files.so.2
b7138000-b71429bb /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libverify.so
b7113000-b7135f57 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libjava.so
007ae000-007c27a7 /lib/libnsl.so.1
b725e000-b7263ef0 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/native_threads/libhpi.so
b5972000-b59803e4 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libzip.so
b5803000-b5808666 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libmanagement.so
b51a8000-b51baa18 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libnet.so
b725c000-b725c6ad /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/librmi.so
b2dae000-b2db1c2f /lib/libnss_dns.so.2
b2d9a000-b2da974b /lib/libresolv.so.2
b47ae000-b47b43a4 /usr/local/jrmc-3.1.2-1.6.0/jre/lib/i386/libnio.so
b1ec7000-b1eef857 /usr/local/springsource/tcServer-6.0/zplus/temp/tmpSigarJars551489478996731294326116727652638760/libsigar-x86-linux-1.6.4.so
Stack:
(* marks the word pointed to by the stack pointer)
02a97010: b7ec5040* 00000200 b7eb0de4 02a97078 02a97078 02a97034
02a97028: 02a97048 b7e78894 00000044 b7eb0de4 02a97078 00000001
02a97040: 02a970d0 02a97110 02a97068 b7e788bf 00000044 b7eb0de4
02a97058: 02a97078 b666692a 00000001 02a970d0 02a97088 b7e2147a
Code:
(* marks the word pointed to by the instruction pointer)
b7cfca14: 4c892074 458b0824 2404c710 b7ec5040 0c244489 000200b8
b7cfca2c: 24448900 b5dae804 01b80017 a3000000 b7ec5024 001267b8
b7cfca44: 0000a300* 04c70000 00003f24 bdcae800 768d0017 27bc8d00
b7cfca5c: 00000000 e589fc55 53c03157 b9e87d8d 00000004 00c0ec81
"tomcat-http--119" id=24059 idx=0x60c tid=8771 lastJavaFrame=0xfffffffc
Stack 0: start=0x2a74000, end=0x2a98000, guards=0x2a79000 (ok), forbidden=0x2a77000
Thread Stack Trace:
at dumpForceDump+117()@0xb7cfca45
at vmFatalErrorMsgV+84()@0xb7e78894
at vmFatalErrorMsg+31()@0xb7e788bf
at fatalError+42()@0xb7e2147a
at refIterInit+111()@0xb7e215bf
at trProcessLocksForThread+41()@0xb7e300f9
at get_all_locks+106()@0xb7d476ca
at javaLockConvertLazyToThin+99()@0xb7d477b3
at javaLockUnmatchedLock+802()@0xb7d488f2
at jniMonitorEnter+48()@0xb7d66cf0
at vmtiDetachFromThreadObject+85()@0xb7d9ec85
at tsiThreadStub+147()@0xb7d9f0f3
at ptiThreadStub+18()@0xb7e0e1d2
at start_thread+226()@0x759832
at __clone+94()@0x62245e
-- Java stack --From the command-line (-Dehcache.monitor.enabled=True) you are using some form of caching.
The out-of-memory occured as the JVM was unable the allocate an object: C Heap : 1 memory allocations have failed
Could you check how the live data set is going (or the memory leak detector)
Some concerns with regard to tune a JVM that runs a cache can be found here: http://middlewaremagic.com/weblogic/?p=7083
Note that the example given discusses Coherence, but can be adopted for another caching mechanism as well. -
Sun identity manager - java.lang.OutOfMemory
Hi, I have one very interesting issue regarding JVM memory. I have one sun idm (version 7) application deployed in sun java web application server. I am facing JVM error - java.lang.OutOfMemory very frequently now days in production server. I am sharing you the details regarding configuration :
Their are 4 app servers - IDMAPP01 IDMAPP02 IDMAPP03 IDMAPP04
current total memory on each of the 4 app server 8 GB
memory allocated to JVM on each server 5 GB
os - solaris
admin task recon are performed only on instance - IDMAPP04
JVM setting is - -Xmx5g -Xms5g -Xmn1500m -XX:MaxPermSize=512m
Log file locations:
/var/opt/SUNWappserver/domain1/logs/vm.log
/var/opt/SUNWappserver/domain1/logs/gc.log
/opt/SUNWappserver/appserver/config/asadminenv.conf
/opt/SUNWappserver/appserver/config/asenv.conf
idm app deployment path:
/var/opt/SUNWappserver/domain1/applications/j2ee-modules/idm
logpath
/var/opt/SUNWappserver/domain1/logs/
Whenever I am getting this issue, we are restarting all the 4 server instances which is impacting business as this is prod server.
Can anyone suggest how can I solve this issue. (please suggest good performance tuning tips without increasing physical memory).
Regards,
Jimmy886672 wrote:
Hi, I have one very interesting issue regarding JVM memory. I have one sun idm (version 7) application deployed in sun java web application server. I am facing JVM error - java.lang.OutOfMemory very frequently now days in production server. I am sharing you the details regarding configuration :
Their are 4 app servers - IDMAPP01 IDMAPP02 IDMAPP03 IDMAPP04
current total memory on each of the 4 app server 8 GB
memory allocated to JVM on each server 5 GB
what else is running on those servers and how much memory are those applications consuming?
os - solaris
admin task recon are performed only on instance - IDMAPP04
JVM setting is - -Xmx5g -Xms5g -Xmn1500m -XX:MaxPermSize=512mIf IDMAPP04 is doing different things from the other servers, then they should be configured differently. What garbage collector are you using?
>
Log file locations:
/var/opt/SUNWappserver/domain1/logs/vm.log
/var/opt/SUNWappserver/domain1/logs/gc.log
/opt/SUNWappserver/appserver/config/asadminenv.conf
/opt/SUNWappserver/appserver/config/asenv.confYou may want to have a loog at the gc.log file provided you have actually enabled gc logging which you should at least until you have resolved your memory problems.
>
idm app deployment path:
/var/opt/SUNWappserver/domain1/applications/j2ee-modules/idm
logpath
/var/opt/SUNWappserver/domain1/logs/
Whenever I am getting this issue, we are restarting all the 4 server instances which is impacting business as this is prod server.Why? The whole idea behind running recon on a separate server is that you can restart that one without affecting the others.
Can anyone suggest how can I solve this issue. (please suggest good performance tuning tips without increasing physical memory).
Enable gc logging and use a profiler to capture the behaviour of the jvm. You need to understand what it is doing and find where the problem area is before you can recommend what to tune.
Regards,
Jimmy -
NHRT and illegal memory parameter
Hi
I'm trying to make a set of NHRTs by calling them from the Main class as shown below:-
PeriodicThread Class:-
package task_set;
import javax.realtime.*;
import java.io.StringWriter;
public class PeriodicThread extends NoHeapRealtimeThread {
// The following parameters and constructor for Priority_based scheduler
int p; //Priority relative to min priority
PriorityScheduler ps;
ReleaseParameters rp;
StringWriter st;
Clock cl;
PeriodicThread(int p_in,ReleaseParameters rp_in,PriorityScheduler ps_in,StringWriter st_in,Clock cl_in){
super(new PriorityParameters(ps_in.getMinPriority()+p_in),rp_in,ImmortalMemory.instance());
p=p_in;
rp=rp_in;
ps=ps_in;
st=st_in;
cl=cl_in;
public void run(){
try{
st.write("ID:"+this.getId()+",Priority:"+this.getPriority()+",Cost"+this.getProcessingGroupParameters().getCost()+",R_Deadline:"+this.getProcessingGroupParameters().getDeadline()+",Period:"+this.getProcessingGroupParameters().getPeriod()+",Start:"+this.getProcessingGroupParameters().getStart()+",Now:"+cl.getTime());
}catch(Exception e){
e.printStackTrace();
Main Class
package task_set;
import javax.realtime.*;
import java.io.StringWriter;
public class Main {
* @param args the command line arguments
public static void main(String[] args) {
// TODO code application logic here
int pri=4; //priority
Clock cl=Clock.getRealtimeClock();
PriorityScheduler ps=(PriorityScheduler)Scheduler.getDefaultScheduler();
PeriodicParameters rp=new PeriodicParameters(cl.getTime().add(1000, 0),new RelativeTime(10,0),new RelativeTime(5,0),new RelativeTime(10,0),null,null);
StringWriter sw= new StringWriter(5000);
//MemoryArea ma=RealtimeThread.getCurrentMemoryArea();
try{
PeriodicThread pt1=new PeriodicThread(pri,rp,ps,sw,cl);
pt1.start();
}catch(Exception e){
e.printStackTrace();
Program compiles without errors, but when run gives the following error:-
java.lang.IllegalArgumentException: Illegal Memory Area Passed or argument allocated in heap
at javax.realtime.NoHeapRealtimeThread.<init>(NoHeapRealtimeThread.java:219)
at javax.realtime.NoHeapRealtimeThread.<init>(NoHeapRealtimeThread.java:196)
at javax.realtime.NoHeapRealtimeThread.<init>(NoHeapRealtimeThread.java:130)
at task_set.PeriodicThread.<init>(PeriodicThread.java:23)
at task_set.Main.main(Main.java:27)
I tried to look for on line code examples for NHRTs to see what the wrong with "memory" parameter is but there are few examples and do not mention more information about memory parameters.
Please help.From the command-line (-Dehcache.monitor.enabled=True) you are using some form of caching.
The out-of-memory occured as the JVM was unable the allocate an object: C Heap : 1 memory allocations have failed
Could you check how the live data set is going (or the memory leak detector)
Some concerns with regard to tune a JVM that runs a cache can be found here: http://middlewaremagic.com/weblogic/?p=7083
Note that the example given discusses Coherence, but can be adopted for another caching mechanism as well. -
More than 100 mb xml file , giving out of memory error in BIP 10.1.3.4
We are running outofmemory error, java heap space error, if we run a report which has more than 100mb xml, with two or more grouping in RTF template.
How to configure it to work with better performance for bigger XML files ?
Any particular setup , pointers are welcome.
Thanks.Long time no see vet. Your problem sucks. I would go to sun site review there articles on JVM tunning. To solve this problem you will need to change the command line arguments to JVM to increase the heap space.
java -Xms<initial heap size> -Xmx<maximum heap size>
Defaults are usually: java -Xms32m -Xmx128m
-Xm*s* - initial java heap size
-Xm*x* - maximum java heap size
-Xm*n* - the size of the heap for the young generation
This is a good article: http://java.sun.com/developer/technicalArticles/Programming/turbo/
Also, if this solves your problem please check it off so I can get some points. I've been out of the game for awhile.
Ike Wiggins
http://bipublisher.blogspot.com -
Memory leak on SunOne Web Server 6.1 on application reload
Hi!
I am pretty sure that i have found a memory management problem in
SunOne Web Server 6.1 .
It started with an OutOfMemory error we got under heavy load . After
some profiling with Jprofiler i didn't find any memory leaks in the
application.Even under heavy load (generated by myself) i can't find
anything ,more, i can't reproduce the error! The memory usage is
about 20Mb and does not go up .
However it is pretty simple to see the following behavior:
[1] Restart the server (to have a clear picture) and wait a little for
memory usage to stabilize.
[2] In the application dir. touch .reload or one of the classes:
The memory usage goes up by another 50Mb (huge amount of mem. taking
into account the fact that it used only 20Mb under any load befor).
Do this another time and another 20Mb gone etc..
The JProfiler marks the memory used by classes . And it can be
clearly seen the GC can't release most of it.
I AM sure this is not the application that takes all the memory.
Another hint : after making the server to reload application i can see
that the number of threads ON EVERY RELOAD is going up by ~10-20
threads .The # of threads goes lower over time but not the mem usage.
My system:
Sparc Solaris 9 ,Java 1.4.2_04-b05, Sun ONE Web Server 6.1SP5
Evgenymy guess is that - because of '.reload' , web container tries to
recompile all the classes that you use within your web application and
hence the memory growth is spiking up.What do you mean by "tries to recompile"?The classes in
Web-inf are already compiled! And i have only ~5 jsp's .
(the most part of the applic. is a complicated business logic)
If you are talking about reloading them ,yes,that's the purpose of .reload,
isn't it? :).But it seems that container uses the memory for it's own
classes: the usage of memory for my classes don't really grow
that much (if at all) after reload (according to profiler)
Also the real problem is that the memory usage grows to much for
too long (neither seen it going down) and thus ends with OutOfMemory.
if you are seeing the memory growth to be flat in stress environment,
then I am not sure that why do you think that there is a memory leak ?There is no memory leak in stress environment.
There is memory leak while reloading the application.
It is a memory hog for sure (~20-30Mb for every reload).
Memory leak?It seems that way because i can't see memory usage go
down and after a lot of reloads OutOfMemory is thrown.
also, what is jvm heap that you use ? did you try jvm tune options like -
XX:+AggressiveHeap ?256Mb.I can set it bigger ,but how do i know that it will not just delay
the problem ?
Thanks for response.
Evgeny -
Performance tuning through OEM
Hi,
I am unable to run performance tuning pack through OEM. Initially when i was not connected with any production database it worked. Now whenever i click performance manager, performance manager over view, etc it simply hangs where as diagnositc packs such as oracle expert are all working. I have increased the java_pool_size to 50M from 24M both in the remote database machine and in server but still i unable to run it through remote database machine. I have configured rman in the remote database and taking fullbackup, logical back up through it but the performance pack hangs whenever i run it. I am new to dba. statstical report collected through statspack report gives no idea for me to tune. Please help me what to do in this regard to tune the database.
What are the vital points one has to tune and how to tune it.Brain heart,
As you have mentioned that you are new in Tuning so I shall say first is to understand what exactly we are hunting for.Please read Performance Tuning guide frm oracle docs.
You have not mentioned any version for your db so I am assumig 10g.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/toc.htm
Also there is an excellent guide from 9i docs, called Performance Planning also read that one.
And to understand tuning and its various know hows, get these books,
Optimize Oracle Performance--Carry Millsap
Oracle Wait Interface --Richmond Shee
Forecasting Oracle Performance --Craig Shallahamer
These will help you in understanding alot of things which will help for sure.
Aman....
Maybe you are looking for
-
Create an event in Photos.app
How can I create an event in the new Photos.app The only way I found was to create a new Album with my imported photos from my Hard-Drive and than, give it the name of the event I wish. This procedure is very long and not easy to do. With iPhoto I ju
-
Abandoned Mac OS Server as PDC
We bought a dual 2.3 XServe in hopes of using it to replace an aging NT PDC and File server. I thought of going a couple different directions (another Windows box, a linux box with Samba,etc.). When I heard Apple had a product that incorporated OpenL
-
IOS 4.2.1 problem
Hi. I have a problem that came with iOS 4.2.1. When im talking on the phone and resiewe a text or mail, the phone vibrates. This is not nice, during a phonecall it should just play a sound?! Sorry for bad english
-
Error in Vendor consignment return PO.
Dear MM experts, I'm creating a vendor consignment return PO but there's an error message " Return with SD delivery not possible for consignment items". Kindly assist which config that I'm missing out. Regards, DSingh.
-
Problems Exporting to Quicktime. Would you use Profcast?
Using the new Keynote, which is promising, we recording a seminar that was 2 hours long. We wanted to distribute it via CD. We have tried to export it so many ways to Quicktime. We get the old "Your slideshow cannot be exported as a Quicktime movie.