@@ -58,7 +58,7 @@ public class RCURunner {
58
58
private static final String WLS_COMPONENT = "WLS" ;
59
59
private static final String WLS_RUNTIME_COMPONENT = "WLS_RUNTIME" ;
60
60
61
- private static final Pattern SCHEMA_DOES_NOT_EXIST_PATTERN = Pattern .compile ("(ORA-01918|RCU-6013)" );
61
+ private static final Pattern SCHEMA_DOES_NOT_EXIST_PATTERN = Pattern .compile ("(ORA-01918|RCU-6013|ORA-12899 )" );
62
62
63
63
private static final int RCU_CREATE_COMMON_ARG_COUNT = 13 ;
64
64
@@ -71,6 +71,7 @@ public class RCURunner {
71
71
private String rcuPrefix ;
72
72
private List <String > rcuSchemas ;
73
73
private boolean ATP_DB = false ;
74
+ private String atpSSlArgs = null ;
74
75
75
76
/**
76
77
* The constructor.
@@ -105,7 +106,8 @@ public RCURunner(String domainType, String oracleHome, String javaHome, String r
105
106
* @param javaHome the JAVA_HOME location
106
107
* @throws CreateException if a parameter validation error occurs
107
108
*/
108
- public RCURunner (String domainType , String oracleHome , String javaHome , PyDictionary rcuProperties )
109
+ public RCURunner (String domainType , String oracleHome , String javaHome , List <String > rcuSchemas ,
110
+ PyDictionary rcuProperties )
109
111
throws CreateException {
110
112
111
113
@@ -119,7 +121,7 @@ public RCURunner(String domainType, String oracleHome, String javaHome, PyDictio
119
121
sslArgs .append (",oracle.net.ssl_version=1.2" );
120
122
sslArgs .append (",javax.net.ssl.trustStore=" );
121
123
sslArgs .append (tnsAdmin + "/truststore.jks" );
122
- sslArgs .append ("javax.net.ssl.trustStoreType=JKS" );
124
+ sslArgs .append (", javax.net.ssl.trustStoreType=JKS" );
123
125
sslArgs .append (",javax.net.ssl.trustStorePassword=" );
124
126
sslArgs .append (trustStorePassword );
125
127
sslArgs .append (",javax.net.ssl.keyStore=" );
@@ -131,15 +133,16 @@ public RCURunner(String domainType, String oracleHome, String javaHome, PyDictio
131
133
sslArgs .append (",oracle.net.ssl_server_dn_match=true" );
132
134
133
135
ATP_DB = true ;
136
+ atpSSlArgs = sslArgs .toString ();
134
137
135
138
this .oracleHome = validateExistingDirectory (oracleHome , "ORACLE_HOME" );
136
139
this .javaHome = validateExistingDirectory (javaHome , "JAVA_HOME" );
137
- this .rcuDb = rcuProperties .get (new PyString ("tns.entry" )).toString ();
140
+ this .rcuDb = "jdbc:oracle:thin:@" + rcuProperties .get (new PyString ("tns.entry" )).toString ();
138
141
this .rcuPrefix = rcuProperties .get (new PyString ("rcu_prefix" )).toString ();
139
142
this .rcuSchemas = validateNonEmptyListOfStrings (rcuSchemas , "rcu_schema_list" );
140
- if (this .rcuSchemas .contains (SERVICE_TABLE_COMPONENT )) {
143
+ if (! this .rcuSchemas .contains (SERVICE_TABLE_COMPONENT )) {
141
144
LOGGER .warning ("WLSDPLY-12000" , CLASS , domainType , SERVICE_TABLE_COMPONENT );
142
- this .rcuSchemas .remove (SERVICE_TABLE_COMPONENT );
145
+ this .rcuSchemas .add (SERVICE_TABLE_COMPONENT );
143
146
}
144
147
}
145
148
@@ -187,6 +190,9 @@ public void runRcu(String rcuSysPass, String rcuSchemaPass) throws CreateExcepti
187
190
runner = new ScriptRunner (createEnv , RCU_CREATE_LOG_BASENAME );
188
191
try {
189
192
exitCode = runner .executeScript (rcuScript , scriptStdinLines , scriptArgs );
193
+ if (ATP_DB && exitCode != 0 && isSchemaNotExistError (runner )) {
194
+ exitCode = 0 ;
195
+ }
190
196
} catch (ScriptRunnerException sre ) {
191
197
CreateException ce = new CreateException ("WLSDPLY-12003" , sre , CLASS , sre .getLocalizedMessage ());
192
198
LOGGER .throwing (CLASS , METHOD , ce );
@@ -231,10 +237,23 @@ private String[] getRcuDropArgs() {
231
237
dropArgs .add (ORACLE_DB_TYPE );
232
238
dropArgs .add (DB_CONNECT_SWITCH );
233
239
dropArgs .add (rcuDb );
234
- dropArgs .add (DB_USER_SWITCH );
235
- dropArgs .add (DB_USER );
236
- dropArgs .add (DB_ROLE_SWITCH );
237
- dropArgs .add (DB_ROLE );
240
+
241
+ if (ATP_DB ) {
242
+ dropArgs .add (DB_USER_SWITCH );
243
+ dropArgs .add ("admin" );
244
+ dropArgs .add (USE_SSL_SWITCH );
245
+ dropArgs .add ("true" );
246
+ dropArgs .add (SERVER_DN_SWITCH );
247
+ dropArgs .add ("CN=ignored" );
248
+ dropArgs .add (SSLARGS );
249
+ dropArgs .add (atpSSlArgs );
250
+
251
+ } else {
252
+ dropArgs .add (DB_USER_SWITCH );
253
+ dropArgs .add (DB_USER );
254
+ dropArgs .add (DB_ROLE_SWITCH );
255
+ dropArgs .add (DB_ROLE );
256
+ }
238
257
dropArgs .add (SCHEMA_PREFIX_SWITCH );
239
258
dropArgs .add (rcuPrefix );
240
259
@@ -260,10 +279,21 @@ private String[] getRcuCreateArgs() {
260
279
createArgs .add (ORACLE_DB_TYPE );
261
280
createArgs .add (DB_CONNECT_SWITCH );
262
281
createArgs .add (rcuDb );
263
- createArgs .add (DB_USER_SWITCH );
264
- createArgs .add (DB_USER );
265
- createArgs .add (DB_ROLE_SWITCH );
266
- createArgs .add (DB_ROLE );
282
+ if (ATP_DB ) {
283
+ createArgs .add (DB_USER_SWITCH );
284
+ createArgs .add ("admin" );
285
+ createArgs .add (USE_SSL_SWITCH );
286
+ createArgs .add ("true" );
287
+ createArgs .add (SERVER_DN_SWITCH );
288
+ createArgs .add ("CN=ignored" );
289
+ createArgs .add (SSLARGS );
290
+ createArgs .add (atpSSlArgs );
291
+ } else {
292
+ createArgs .add (DB_USER_SWITCH );
293
+ createArgs .add (DB_USER );
294
+ createArgs .add (DB_ROLE_SWITCH );
295
+ createArgs .add (DB_ROLE );
296
+ }
267
297
createArgs .add (SCHEMA_PREFIX_SWITCH );
268
298
createArgs .add (rcuPrefix );
269
299
@@ -329,6 +359,19 @@ private static boolean isSchemaNotExistError(ScriptRunner runner) {
329
359
return schemaDoesNotExist ;
330
360
}
331
361
362
+ private static boolean isValueTooLargeError (ScriptRunner runner ) {
363
+ List <String > stdoutBuffer = runner .getStdoutBuffer ();
364
+ boolean schemaDoesNotExist = false ;
365
+ for (String line : stdoutBuffer ) {
366
+ Matcher matcher = SCHEMA_DOES_NOT_EXIST_PATTERN .matcher (line );
367
+ if (matcher .find ()) {
368
+ schemaDoesNotExist = true ;
369
+ break ;
370
+ }
371
+ }
372
+ return schemaDoesNotExist ;
373
+ }
374
+
332
375
private static File validateExistingDirectory (String directoryName , String directoryTypeName )
333
376
throws CreateException {
334
377
final String METHOD = "validateExistingDirectory" ;
0 commit comments