@@ -159,6 +159,7 @@ data:
159159 stateFile=${DOMAIN_HOME}/servers/$2/data/nodemanager/$2.state
160160 scriptFile=${nmdir}/startServer.sh
161161 pyFile=${nmdir}/start-server.py
162+ argsFile=${nmdir}/set-ms-args.py
162163
163164 # Create a script that starts the node manager, then uses wlst to connect
164165 # to the nodemanager and start the server.
@@ -180,7 +181,14 @@ data:
180181 echo "Finished waiting for the nodemanager to start"
181182
182183 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
184192
185193 echo "Start the server"
186194 wlst.sh -skipWLSModuleScanning ${pyFile}
@@ -208,6 +216,52 @@ data:
208216
209217 checkFileExists ${pyFile}
210218
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+
211265 }
212266
213267 # Function to create script for stopping a server
@@ -274,7 +328,7 @@ data:
274328
275329 # Setup admin server
276330 createNodeMgrHome %DOMAIN_UID% %ADMIN_SERVER_NAME%
277- createStartScript %DOMAIN_UID% %ADMIN_SERVER_NAME%
331+ createStartScript %DOMAIN_UID% %ADMIN_SERVER_NAME% 'admin'
278332 createStopScript %DOMAIN_UID% %ADMIN_SERVER_NAME%
279333
280334 # Create the managed servers
0 commit comments