@@ -159,6 +159,7 @@ data:
159
159
stateFile=${DOMAIN_HOME}/servers/$2/data/nodemanager/$2.state
160
160
scriptFile=${nmdir}/startServer.sh
161
161
pyFile=${nmdir}/start-server.py
162
+ argsFile=${nmdir}/set-ms-args.py
162
163
163
164
# Create a script that starts the node manager, then uses wlst to connect
164
165
# to the nodemanager and start the server.
@@ -180,7 +181,14 @@ data:
180
181
echo "Finished waiting for the nodemanager to start"
181
182
182
183
echo "Update JVM arguments"
183
- echo "Arguments=\${USER_MEM_ARGS} -XX\:+UnlockExperimentalVMOptions -XX\:+UseCGroupMemoryLimitForHeap \${JAVA_OPTIONS}" >> ${startProp}
184
+ if [ $# -eq 3 ]
185
+ then
186
+ echo "Update JVM arguments for admin server"
187
+ echo "Arguments=\${USER_MEM_ARGS} -XX\:+UnlockExperimentalVMOptions -XX\:+UseCGroupMemoryLimitForHeap \${JAVA_OPTIONS}" >> ${startProp}
188
+ else
189
+ echo "Update JVM arguments for managed server"
190
+ wlst.sh ${argsFile} $1 $2 ${startProp}
191
+ fi
184
192
185
193
echo "Start the server"
186
194
wlst.sh -skipWLSModuleScanning ${pyFile}
@@ -208,6 +216,52 @@ data:
208
216
209
217
checkFileExists ${pyFile}
210
218
219
+ # Create a python script to set JVM arguments for managed server.
220
+ # The script and 'EOF' on the following lines must not be indented!
221
+ cat << EOF > ${argsFile}
222
+
223
+ import os
224
+ import sys
225
+ EOF
226
+
227
+ cat /u01/weblogic/read-domain-secret.py >> ${argsFile}
228
+ cat << EOF >> ${argsFile}
229
+
230
+ mem_args=os.environ['USER_MEM_ARGS']
231
+ java_opt=os.environ['JAVA_OPTIONS']
232
+ admin_server=os.environ['ADMIN_NAME']
233
+ admin_port=os.environ['ADMIN_PORT']
234
+
235
+ domain_UID=sys.argv[1]
236
+ server_name=sys.argv[2]
237
+ startup_file=sys.argv[3]
238
+
239
+ print("mem_args=" + mem_args)
240
+ print("java_opt=" + java_opt)
241
+ adminUrl='t3://' + domain_UID + '-' + admin_server + ':' + admin_port
242
+ print("adminUrl=" + adminUrl)
243
+ dirStr='Servers/managed-server1/ServerStart/' + server_name
244
+ print("dirStr=" + dirStr)
245
+
246
+ # Connect to admin server to get startup arguments of this server
247
+ connect(admin_username, admin_password, adminUrl)
248
+ cd(dirStr)
249
+ args=get('Arguments')
250
+ disconnect()
251
+
252
+ f = open(startup_file, 'a')
253
+ s=str("Arguments="+ mem_args + " -XX\:+UnlockExperimentalVMOptions -XX\:+UseCGroupMemoryLimitForHeap " + java_opt )
254
+ if not (args is None):
255
+ s=str(s + " " + args + "\n")
256
+ else:
257
+ s=str(s + "\n")
258
+
259
+ f.write(s)
260
+ f.close()
261
+ EOF
262
+
263
+ checkFileExists ${argsFile}
264
+
211
265
}
212
266
213
267
# Function to create script for stopping a server
@@ -274,7 +328,7 @@ data:
274
328
275
329
# Setup admin server
276
330
createNodeMgrHome %DOMAIN_UID% %ADMIN_SERVER_NAME%
277
- createStartScript %DOMAIN_UID% %ADMIN_SERVER_NAME%
331
+ createStartScript %DOMAIN_UID% %ADMIN_SERVER_NAME% 'admin'
278
332
createStopScript %DOMAIN_UID% %ADMIN_SERVER_NAME%
279
333
280
334
# Create the managed servers
0 commit comments