2014-07-11 51 views
2

glassfish管理指南指出JVM選項應該加上asadmin create-jvm-options -Dkey=value:-Dkey=valuehttps://glassfish.java.net/docs/4.0/administration-guide.pdf,S. 120)。當然,這些例子並不包括添加包含:的選項以及從-XX而不是-D開始的選項的有趣和教學重要案例。儘管如此,它解釋爲:\。調用asadmin create-jvm-options -XX\:MaxPermSize=1024m:-Xmx4096添加了兩個選項,而不刪除\哪些(正確)阻止了(錯誤的)選項被識別。什麼是在這裏繼續的正確方法?如何添加JVM選項到glassfish 4.0?

如何覆蓋現有選項?如果選項名稱使用相同的值指定,asadmin create-jvm-options則表示該選項已存在,指定了另一個值,值都存在( - >使用哪一個?)。我真的不必解析和評估asadmin list-jvm-options的輸出,對嗎?

如何找出選項是否已添加,即是否需要重新啓動域?同樣的問題在這裏:我不需要在添加選項之前和之後解析和評估asadmin list-jvm-options的輸出,對嗎?

回答

2

什麼是在這裏繼續的正確方法?

你要刪除JVM選項與asadmin delete-jvm-options

asadmin delete-jvm-options '-XX\:MaxPermSize=192m' 

然後用新值重新添加選項:

asadmin create-jvm-options '-XX\:MaxPermSize=1024m' 

服務器的重啓後,總是需要更改JVM選項。

如何改寫現有的選項?如果選項名稱被指定爲 具有相同的值,asadmin create-jvm-options則抱怨 選項已存在,指定了另一個值,值 都存在( - >使用哪一個?)。我真的不必解析 並評估asadmin list-jvm-options的輸出,對嗎?

我想這個問題已經過時,如果你按照上面的說明。

如何確定是否添加了選項,即 是否必須重新啓動域?同樣的問題在這裏:我不需要 真的必須在添加選項之前和之後解析和評估asadmin list-jvm-options的輸出,對嗎?

asadmin命令會告訴您它是否成功添加或刪除了一個選項。如果您嘗試刪除不存在的選項,asadmin會告訴您沒有選項被刪除,因爲它不存在。

更新:

爲了刪除選項,我必須知道這兩個鍵和值(什麼如果選項設置爲-XX我 做:MaxPermSize參數=193米 - >它不會被刪除, 但asadmin將產生第二個選項(該命令不清楚), 因此,我將不得不解析asadmin list-jvm-options的輸出。

如果你以前沒有設置過,那麼它爲什麼要有值193m(然後你可能知道它)?如果它有這個值,是的,你是對的,你將不得不解析list-jvm-options的輸出來找出它。您也可以編寫一個腳本,通過增加參數(192m,193m194m等)來嘗試刪除該值,但這需要很長時間才能完成。

asadmin如何告訴我這個(return code,output,...)?

它輸出人類可讀的消息是這樣的:

deleted 1 option(s) 
Command delete-jvm-options executed successfully. 

created 1 option(s) 
Command create-jvm-options executed successfully. 

自己試着以查看不同的消息。

我指的是GF 4.0,所以指向3.0.1管理員指南的鏈接是 已過時。

他們都沒有,GlassFish的管理和asadmin是99.9%GlassFish中等於3和4

怎麼樣逃避問題?

我不能重現這一點,也許它有助於一次只設置一個值或將參數和值包裹在引號中。

參見:

+0

爲了刪除選項,我必須知道這兩個鍵和值(我該怎麼辦,如果選項設置爲'某某\:MaxPermSize參數= 193m' - >它贏得不會被刪除,但'asadmin'會產生第二個選項(順序不清楚),因此我將不得不解析'asadmin list-jvm-options'的輸出。關於你的第二點:** ** asadmin'告訴我這個(返回碼,輸出,...)?我指的是GF 4.0,所以到3.0.1管理員指南的鏈接已經過時(我甚至在我的問題中引用了正確的版本...)。那麼逃避的問題呢? –

+0

我已經更新了我的回答:) – unwichtich

+0

謝謝:)!結果是我預期的最差。 (1)指定不同的'-Xmx'選項有什麼意義;覆蓋應該基於鍵發生並驅逐所有值! (2)未指定的返回碼幾乎是開發人員的一種虐待行爲(我希望向管理指南輸入一個複雜的技術規範)。我認爲我的問題和你的答案表明,這個管理員指南是非常不可用/無用的。 –

1

[@的glassfish 6b99de007186 /] $ asadmin的刪除-JVM選項-client: ' - XX:MaxPermSize參數=192米' :-Xmx512m 已刪除3個選項 命令delete-jvm-options已成功執行。

[@的glassfish 6b99de007186 /] $ asadmin的創建-JVM選項-server: ' - XX:MaxPermSize參數=256米': - Xmx1024m 創建3選項(S)成功地執行命令 創建-JVM選項。

0

命令行的其他替代方法是將JVM屬性手動添加到Glassfish domain.xml文件。

你可以找到這個文件: 輕拍至glassgish \ Glassfish的\ GlassFish的\域\ YOURDOMAIN \ CONFIG

在那裏,你將看到JVM的選項secion,像這樣:

<jvm-options>-Dhttps.protocols=TLSv1.2</jvm-options> 

你可以在那裏添加你的。

我希望它能幫助:-)