@@ -153,12 +153,14 @@ data:
153153 # Function to create script for starting a server
154154 # $1 - Domain UID
155155 # $2 - Server Name
156+ # $3 - Flag (only passed for admin server)
156157 function createStartScript() {
157158
158159 nmdir=${DOMAIN_HOME}/servers/$2/nodemgr_home
159160 stateFile=${DOMAIN_HOME}/servers/$2/data/nodemanager/$2.state
160161 scriptFile=${nmdir}/startServer.sh
161162 pyFile=${nmdir}/start-server.py
163+ argsFile=${nmdir}/set-ms-args.py
162164
163165 # Create a script that starts the node manager, then uses wlst to connect
164166 # to the nodemanager and start the server.
@@ -180,7 +182,14 @@ data:
180182 echo "Finished waiting for the nodemanager to start"
181183
182184 echo "Update JVM arguments"
183- echo "Arguments=\${USER_MEM_ARGS} -XX\:+UnlockExperimentalVMOptions -XX\:+UseCGroupMemoryLimitForHeap \${JAVA_OPTIONS}" >> ${startProp}
185+ if [ $# -eq 3 ]
186+ then
187+ echo "Update JVM arguments for admin server"
188+ echo "Arguments=\${USER_MEM_ARGS} -XX\:+UnlockExperimentalVMOptions -XX\:+UseCGroupMemoryLimitForHeap \${JAVA_OPTIONS}" >> ${startProp}
189+ else
190+ echo "Update JVM arguments for managed server"
191+ wlst.sh ${argsFile} $1 $2 ${startProp}
192+ fi
184193
185194 echo "Start the server"
186195 wlst.sh -skipWLSModuleScanning ${pyFile}
@@ -208,6 +217,48 @@ data:
208217
209218 checkFileExists ${pyFile}
210219
220+ # Create a python script to set JVM arguments for managed server.
221+ # The script and 'EOF' on the following lines must not be indented!
222+ cat << EOF > ${argsFile}
223+
224+ import os
225+ import sys
226+ EOF
227+
228+ cat /u01/weblogic/read-domain-secret.py >> ${argsFile}
229+ cat << EOF >> ${argsFile}
230+
231+ mem_args=os.environ['USER_MEM_ARGS']
232+ java_opt=os.environ['JAVA_OPTIONS']
233+ admin_server=os.environ['ADMIN_NAME']
234+ admin_port=os.environ['ADMIN_PORT']
235+
236+ domain_UID=sys.argv[1]
237+ server_name=sys.argv[2]
238+ startup_file=sys.argv[3]
239+
240+ adminUrl='t3://' + domain_UID + '-' + admin_server + ':' + admin_port
241+ dirStr='Servers/managed-server1/ServerStart/' + server_name
242+
243+ # Connect to admin server to get startup arguments of this server
244+ connect(admin_username, admin_password, adminUrl)
245+ cd(dirStr)
246+ args=get('Arguments')
247+ disconnect()
248+
249+ f = open(startup_file, 'a')
250+ s=str("Arguments="+ mem_args + " -XX\:+UnlockExperimentalVMOptions -XX\:+UseCGroupMemoryLimitForHeap " + java_opt )
251+ if not (args is None):
252+ s=str(s + " " + args + "\n")
253+ else:
254+ s=str(s + "\n")
255+
256+ f.write(s)
257+ f.close()
258+ EOF
259+
260+ checkFileExists ${argsFile}
261+
211262 }
212263
213264 # Function to create script for stopping a server
@@ -274,7 +325,7 @@ data:
274325
275326 # Setup admin server
276327 createNodeMgrHome %DOMAIN_UID% %ADMIN_SERVER_NAME%
277- createStartScript %DOMAIN_UID% %ADMIN_SERVER_NAME%
328+ createStartScript %DOMAIN_UID% %ADMIN_SERVER_NAME% 'admin'
278329 createStopScript %DOMAIN_UID% %ADMIN_SERVER_NAME%
279330
280331 # Create the managed servers
0 commit comments