Thursday 11 December 2014

SOA-Infra is not coming up beause of exception com.tangosol.net.RequestTimeoutException

SOA infra isn't coming up and below error message has been shown in the server logs.

Error:
Caused By: com.tangosol.net.RequestTimeoutException: Timeout during service start: ServiceInfo(Id=0, Name=Cluster, Type=Cluster
  MemberSet=MasterMemberSet(
    ThisMember=null
    OldestMember=null
    ActualMemberSet=MemberSet(Size=0
      )
    MemberId|ServiceVersion|ServiceJoined|MemberState
    RecycleMillis=1200000
    RecycleSet=MemberSet(Size=0
      )
    )
)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onStartupTimeout(Grid.CDB:3)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.start(Service.CDB:28)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.start(Grid.CDB:6)
        at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:58)

Root Cause:
Tangosole Configuration wasn't correct. Localhost was missing from WKA settings

Solution:
Corrected WKA/Tangosole settings by providing localhost and restarted server

Oracle Fusion Middleware Node manager

Node Manager is a WebLogic Server utility that enables you to start, shut down, and restart Administration Server and Managed Server instances from a remote location
A Node Manager process is not associated with a specific WebLogic domain but with a machine. Although Node Manager is optional but it's recommended by oracle.

WebLogic Server provides two versions of Node Manager, Java-based and script-based, with similar functionality.  Java based NM provides more security capabilities than script based NM.
If you are installing WebLogic Server on a Windows system, you must use the Java version of Node Manager. The scripted version of Node Manager is not supported on Windows.
In order to use consensus leasing, you may see faster performance when using the Java version of Node Manager.

What You Can Do with Node Manager
Start, Shut Down, and Restart an Administration Server
Start, Shut Down, Suspend, and Restart Managed Servers
Monitor Servers and View Log Data

Starting Java-based Node Manager
Start scripts for Node Manager are installed in the WL_HOME\server\bin directory, where WL_HOME is the top-level installation directory for WebLogic Server. 
Use startNodeManager.cmd on Windows systems and startNodeManager.sh on UNIX systems.
The scripts set the required environment variables and start Node Manager in WL_HOME/common/nodemanager. Node Manager uses this directory as a working directory for output and log files. 

Important Node Manager Configuration Files
1. nodemanager.properties
This is the configuration file used by the Java-based version of Node Manager.
This file is located in WL_HOME/common/nodemanager.
2. nodemanager.hosts
This file contains a list of all the trusted hosts that can issue commands to Node Manager.
This file is located in WL_HOME/common/nodemanager.
3. nodemanager.domains
This file contains mappings between the names of domains managed by Node Manager and their corresponding directories. 
This file is located in WL_HOME/common/nodemanager.
4. nm_data.properties
This file stores the encryption data the Node Manager uses a symmetric encryption key. The data is stored in encrypted form.
This file is located in WL_HOME/common/nodemanager.
5. nm_password.properties
This file stores a username/password pair specific to the Node Manager server that is managing this domain. This is known as the Node Manager secret. The username and password are appended to a salt value (obtained from the SerializedSystemIni.dat of the domain) and SHA-hashed.
This file is located in DOMAIN_HOME/config/nodemanager.
6. boot.properties
Node Manager uses this file to specify a boot identity when starting a server. This file is located in domain-name/servers/server_name/data/nodemanager.
7. startup.properties
Each Managed Server instance has its own startup.properties file with properties that control how Node Manager starts up and controls the server. Node Manager automatically creates this file by using properties passed to Node Manager when the Administrative Server was last used to start the server. This allows a Node Manager client or startup scripts to restart a Managed Server using the same properties last used by the Administrative Server.
These properties correspond to the server startup attributes contained in ServerStartMBean and the health monitoring attributes in ServerStartMBean.
This file is located in domain-name/servers/server_name/data/nodemanager.
8. server_name.addr
server_name.addr stores the IP address added when a server starts or is migrated. This file is generated after the server IP address is successfully brought online during migration. server_name.addr is deleted when the IP address is brought offline. The server IP address is used to validate remove requests to prevent addresses being erroneously removed while shutting down the server.
This file is located in domain-name/servers/server_name/data/nodemanager.
9. server_name.lck
server_name.lck is generated by each server and contains an internally used lock ID.
This file is located in domain-name/servers/server_name/data/nodemanager
10. server_name.pid
server_name.pid is generated by each server and contains the process ID of the server. Node Manager checks the process ID generated by the server during crash recovery.
This file is located in domain-name/servers/server_name/data/nodemanager
11. server_name.state
server_name.state is generated by the server and contains the server's current state. Node Manager monitors the contents of this file to determine the current state of the server.
Note: Do not delete or alter this file. Without this file Node Manager cannot determine the current state of the server.
This file is located in domain-name/servers/server_name/data/nodemanager.

Wednesday 10 December 2014

java.net.SocketException: Too many files in weblogic/EM

Root Cause:
Maximum number of file descriptors configured for Server is less than 65535.

Resolution:
1. verify the maximum number of file descriptors currently configured using below command
    cat /proc/sys/fs/file-max
    if the value is less than 65535 then perform the following steps,
2. Edit the file /etc/security/limits.conf with root permission
    sudo vi /etc/security/limits.conf
3. Append the following two lines, using a value of 65535 or greater
     *                soft    nofile          65535
     *                hard    nofile          65535
4. Start a new terminal session
5. Execute the limit descriptors command to verify that descriptors has been increased to the specified value (at least 65535).
    limit descriptors
6. Restart Weblogic server.

Tuesday 9 December 2014

Difference between Development mode and Production mode

Development mode:
  1. Default JDK for development domain is Sun Hotspot.
  2. You can use the demo certificates for SSL.
  3. Auto deployment is enabled.
  4. Server instances rotate their log files on startup.
  5. Admin Server uses an automatically created boot.properties during startup.
  6. The default maximum capacity for JDBC Datasource is 15.
  7. The debugFlag which is used to start the WebLogic Workshop Debugger is enabled.
Production mode:
  1. The default JDK for production domain is JRockit.
  2. If you use the demo certificates for SSL a warning is displayed.
  3. Auto deployment is disabled.
  4. Server instances rotate their log files when it reaches 5MB.
  5. Admin Server prompts for username and password during startup.
  6. The default maximum capacity for JDBC Datasource is 25.
  7. The debugFlag which is used to start the WebLogic Workshop Debugger is disabled.
Ref: https://www.liferay.com/community and oracle docs.

Sunday 17 August 2014

Unable to open audit trial on EM Exception:Requested audit trail size is larger than threshold 1048576 chars

Error:
>> Exception occured while retrieving the Flowtrace XML for the Composite Instance; ECID: ef0c96a86f28608a:-13b68de8:141687988a0:-8000-00000000000b0351
>> java.rmi.RemoteException: EJB Exception: ; nested exception is:
>>> java.lang.RuntimeException: oracle.soa.management.facade.DataSetTooLargeException: Requested audit trail size is larger than threshold 1048576 chars

Root Cause:
InstanceTrackingAuditTrailThreshold is used to limit the audit trail size while it is being built. The default value is 1MB. If the audit trail exceeds the instanceTrackingAuditTrailThreshold size (1MB by default), then an exception is thrown, and the audit trail is not fully built.

Resolution:
If you are getting an exception while retrieving audit trails from EM, that states the "instanceTrackingAuditTrailThreshold" has been exceeded then increase the default value.

To change instanceTrackingAuditTrailThreshold -
1. Right click on SOA-Infra and navigate till Audit Config
SOA_Infra ->Administration -> System Mbean Browser ->Application Defined MBeans ->oracl.as.soinfa.config ->Select server ->SoaInfraConfig -> soa-infra -> Audit Config








2. Change instanceTrackingAuditTrailThreshold value(In my case we have to raise it till 4 MB) and click Apply.

Weblogic Server failed to start because of java.lang.NumberFormatException: null

========================================================================
Applies to:
Weblogic: 10.3.6
========================================================================
Problem Summary:
Unable to start admin server because of java.lang.NumberFormatException: null

Error:
####<Aug 15, 2014 5:26:31 AM CDT> <Critical> <WebLogicServer> <AdminServer> <Main Thread> <> <> <> <> <BEA-000386> <Server subsystem failed. Reason: java.lang.NumberFormatException: null
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
at weblogic.ldap.EmbeddedLDAP.validateVDEDirectories(EmbeddedLDAP.java:1035)
at weblogic.ldap.EmbeddedLDAP.start(EmbeddedLDAP.java:212)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

========================================================================
Root Cause:
This is something that happens infrequently and is the result of a corrupted file in the embedded LDAP. This might caused due to the space issue on the box.

========================================================================
Resolution:
Follow the below steps to resolve the issue,
1. Delete the file /servers/<server_name>/data/ldap/config/replicas.prop
    OR
    Alter the replicas.prop file and add 'replica.num=0' to it.
2. Start server.

Saturday 16 August 2014

Unlock user in weblogic

User accounts can become locked as a result of an excessive number of failed login attempts (default 5)

To unlock a user account:
Method A: using Admin console
In the left pane click the name of the domain.
Select Security > Unlock User.
Enter the user name of the user whose account you want to unlock.
Click Save
Method B: using weblogic.Admin utility
The following command unlocks a user account:
java weblogic.Admin -adminurl localhost:8001 -username weblogic
-password weblogic invoke -mbean Security:Name=myrealmUserLockoutManager
-method clearLockout my-user
If the command succeeds, it prints OK to standard out.

Checking locked/unlocked users using admin console:
Select Admin server -> Expand the Monitoring-->Security tab for the server.
This page allows you to monitor user lockout management statistics for this server.
e.g.
Total Invalid Logins:                         1
User Lockout Total Count:                0
Total Login Attempts while Locked:   0
Invalid Logins High:                          1
Locked Users:                                 0
Total Users Unlocked:                      0

Change weblogic console URL/context

We use the following URL pattern to access Weblogic Admin Console:
http://host_name:port/context-path
e.g. http://localhost:7001/console

Our aim is to change context-path "console" that we use to access weblogic admin console.
Follow the below mentioned steps to achieve it.
1. On the Change Center of the Administration Console, click Lock & Edit.
2. In the left pane of the Console, under Domain Structure, click on the domain name
e.g. osb_domain
3. Select Configuration --> General.
4. Click Advanced at the bottom of the page.
5. In Console Context Path enter the context path that you want to use. Default is "console"
e.g. if you set the context path to newconsole, then you use the following URL to access the Weblogic Admin Console: http://localhost:7001/newconsole
6. To activate these changes, in the Change Center of Weblogic Admin Console, click Activate changes.
7. We need to do a restart of admin for changes to take effect.

BPEL Vs OSB

Once we have decided to go with SOA approach for a business solution very next question will come to our mind is which SOA technology better suits for my business solutions. It's completely depends on your solution requirement. Architect role is very important in this decision.

Here in this case we will take example of two technologies BPEL and OSB and decide when to go for it.

BPEL(Business Process Execution Language):
If the requirement is for a solution to run , manage and monitor a business processes which are stateful and long running then we should go with the BPEL.
e.g. Loan approval process.
If we want to have functionality like Business Rules, Human Workflow/interaction , Management and Monitoring, SCA implementation and Service Orchestration then BPEL is the great fit for it.
We will develop composites inside Jdeveloper only. No console based development.

OSB(Oracle Service Bus):
If the requirement is for a solution to achieve stateless messaging capabilities like routing, transformation, validation, service virtualization and  integration is enterprise wide then OSB is great fit for it.
Few main functionality of OSB are message throttling, service virtualization and message reliability.
We can't integrate Business Rules and Human workflow directly into OSB.
We can do development of OSB projects using sbconsole and eclipse.
Mediator is intra composite component where as OSB is inter composite component.

Combination of BPEL and OSB:
As per business demand sometimes we need to go with the BPEL+OSB solutions and for sure it's a great fit for most of the business requirements.

Creating the XA Data Source in weblogic for ORACLE DB

Prerequisite:
Need Oracle DB installed and should have TNS and user details.

Creation of Data Source(DS):
We are using weblogic console to create DS here.
First will create the data source and then a connection pool for that data source.

A. Data Source:
1. Open the WebLogic Server Administration Console and login using admin credentials.
e.g. http://localhost:7001/console  admin url and credentials weblogic/welcome1
2. Left hand side on navigation bar, Click Services --> Data Sources.
3. In the data source table, click New. If New button is grayed out/disabled then you should click on lock & edit on left hand side to make it enable for creating new data source.
4. Enter the data source information
 Name: soaTestDS
 JNDI Name: jdbc/soaTestDS
 Database Type: Oracle
5. Database driver defaults to the correct driver: Oracle’s Driver (Thin XA) for Instance connections:versions:9.0.1 and later so leave it as it is.
6. Click Next, click Next again.
7. Provide the following details for the data source
 Database Name: XE (your database SID)
 Host name: localhost (host where your database is running)
 Port: 1521 (set according to your configuration)
 Database user name: soademo (created in previous section)
 Database user password: soademo
8. Click Next
9. Click on Test Configuration just to make sure all the details are valid and we are able to connect to respective DB. If test fails check the DB details you have configured for the data source.
10. Click Next.
11. Target it to the cluster/managed server/admin server depending on your setup.
12. Click on Finish.

B. Connection Pool:
1. Click on Deployments form the left navigation bar.
2. Click the DbAdapter application name.
3. Click the Configuration tab, and then click the Outbound Connection Pools tab.
4. Click New.
5. Select the radio button for javax.resource.cci.ConnectionFactory and click Next.
6. Enter the JNDI Name as follows: eis/DB/soaTestDS.
7. Click Finish.
8. Now, need to edit the connection pool to reference the data source which we have created. Click the Configuration tab, expand the connection factory and click your new connection pool name: eis/DB/soaTestDS.
9. In the Properties table, view the box to the far right of xADataSourceName and specify value: jdbc/soaTestDS. Hit enter button once the value has been provided.
Note: You need to hit Enter to save the value. only save click won't work.
10. Click on save.
11. Now need to update DB adapter application and plan.xml to reflect new changes.
12. Click Deployments in the left navigation bar.
13. Select the DbAdapter checkbox.
14. Click on Update to update application.
15. Select Redeploy this application and confirm the deployment plan location.
16. Click Finish. If you are having multiple hosts for the managed servers then copy plan.xml manually to the respective host on the same location as admin otherwise you might face an data source issue during runtime.

Verification:
To confirm that the connection pool is added we just need to go back to the Deployments --> DbAdapter --> Configuration --> Outbound Connection Pools.
You should have eis/DB/soaTestDS listed there. Click on it to verify it's configuration.

So simple isn't it?

Unable to start weblogic server becuase of java.io.IOException: [Store:280036]Missing the file store file "WLS_DIAGNOSTICS000001.DAT"

========================================================================
Applies to:
Weblogic: 10.3.6 and later
========================================================================
Problem Summary:
Unable to start server because of java.io.IOException: [Store:280036]Missing the file store file "WLS_DIAGNOSTICS000001.DAT"

Error:
weblogic.store.PersistentStoreFatalException: java.io.IOException: [Store:280036]Missing the file store file "WLS_DIAGNOSTICS000001.DAT" in the directory "/OraclePS6/domains/osb_domain/servers/osb_server01/data/store/diagnostics"
        at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:128)
        at weblogic.store.internal.PersistentStoreImpl.recoverStoreConnections(PersistentStoreImpl.java:435)
        at weblogic.store.internal.PersistentStoreImpl.open(PersistentStoreImpl.java:423)
...............................
Caused by: java.io.IOException: [Store:280036]Missing the file store file "WLS_DIAGNOSTICS000001.DAT" in the directory "/OraclePS6/domains/osb_domain/servers/osb_server01/data/store/diagnostics"
        at weblogic.store.io.file.StoreDir.throwIOException(StoreDir.java:173)
        at weblogic.store.io.file.StoreDir.open(StoreDir.java:83)
        at weblogic.store.io.file.Heap.open(Heap.java:290)
        at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:117)

========================================================================
Root Cause:
Either you have deleted WLS_DIAGNOSTICS000001.DAT or renamed it.

========================================================================
Resolution:
Solution1: If you renamed the file then revert it to the original name.
Solution2: Take server folder backup(osb_server01) and restart it. This will work in either case.

Server subsystem failed. Reason: weblogic.security.SecurityInitializationException: Authentication for user denied during weblogic admin start

========================================================================
Applies to:
Weblogic: 10.3.6 and later
========================================================================
Problem Summary:
Unable to start weblogic admin server becuae of weblogic.security.SecurityInitializationException: Authentication for user denied

Error:
####<Feb 25, 2014 11:20:33 PM IST> <Critical> <WebLogicServer> <localhost.com> <AdminServer> <Main Thread> <<WLS Kernel>> <> <> <1393392033466> <BEA-000386> <Server subsystem failed. Reason: weblogic.security.SecurityInitializationException: Authentication for user  denied
weblogic.security.SecurityInitializationException: Authentication for user  denied
        at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.doBootAuthorization(CommonSecurityServiceManagerDelegateImpl.java:965)
        at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.initialize(CommonSecurityServiceManagerDelegateImpl.java:1050)
.....................
Caused By: javax.security.auth.login.FailedLoginException: [Security:090304]Authentication Failed: User  javax.security.auth.login.LoginException: [Security:090301]Password Not Supplied
        at weblogic.security.providers.authentication.LDAPAtnLoginModuleImpl.login(LDAPAtnLoginModuleImpl.java:261)
        at com.bea.common.security.internal.service.LoginModuleWrapper$1.run(LoginModuleWrapper.java:110)

========================================================================
Root Cause:
boot.properties file is missing from the location $Domain_home/servers/AdminServer/security or password has been changed.

========================================================================
Resolution:
1. Copy boot.properties file from the back up if any or create test boot.properties file under $Domain_home/servers/AdminServer/security folder
2. Configure weblogic username and password in boot.properties.
    Put below 2 lines in boot.properties file,
    username=<adminuser>
    password=<password>
3. During start up WLS read credentials from this file and encrypt it.

ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

========================================================================
Applies to:
Weblogic: 10.3.6
========================================================================
Problem Summary:
Data Source connection test is failing with ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

Error:
Connection test failed with the following exception: weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceException: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

<BEA-001156> <Stack trace associated with message 001129 follows:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:538)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.__AW_connect(OracleDriver.java:521)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)
......................
Caused By: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
        at oracle.net.ns.NSProtocol.__AW_connect(NSProtocol.java:394)
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java)
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1056)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:538)

========================================================================
Root Cause:
Database is under maintenance or in inconsistent state. Exception clearly shows that connection requested by weblogic failed to make connectivity with DB.

========================================================================
Resolution:
1. Make sure Database is up and running and able to accept connections. listener should be listening.
2. Use below command on DB to verify listener status,
    SQL>lsnrctl status
3. We can use SQL developer to verify DB state. Create a new connection and see if you are able to connect to it.
4. Once DB is fine you won't face this issue anymore.

IO Error: The Network Adapter could not establish the connection during DS creation in weblogic

========================================================================
Applies to:
Weblogic: 10.3.6
========================================================================
Problem Summary:
Unable to configure a datasource becuase of IO Error: The Network Adapter could not establish the connection.

Error:
IO Error: The Network Adapter could not establish the connection<br/>oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:465)<br/>oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)<br/>oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:232)<br/>oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)<br/>oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)<br/>oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280)<br/>oracle.jdbc.xa.client.OracleXADataSource.getPooledConnection(OracleXADataSource.java:469)<br/>oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:156)<br/>oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:101)<br/>weblogic.jdbc.common.internal.DataSourceUtil.testConnection0(DataSourceUtil.java:356)<br/>weblogic.jdbc.common.internal.DataSourceUtil.access$000(DataSourceUtil.java:22)<br/>weblogic.jdbc.common.internal.DataSourceUtil$1.run(DataSourceUtil.java:254)<br/>java.security.AccessController.doPrivileged(Native Method)<br/>weblogic.jdbc.common.internal.DataSourceUtil.testConnection(DataSourceUtil.java:251)<br/>com.bea.console.utils.jdbc.JDBCUtils.testConnection(JDBCUtils.java:751)<br/>com.bea.console.actions.jdbc.datasources.createjdbcdatasource.CreateJDBCDataSource.testConnectionConfiguration(CreateJDBCDataSource.java:474)<br/>sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br/>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br/>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br/>java.lang.reflect.Method.invoke(Method.java:606)<br/>..

========================================================================
Root Cause:
Either wrong TNS details are used in JDBC URL of Data source or unable to connect to the DB server host because of firewall.

========================================================================
Resolution:
1. Make sure TNS entries used are valid for host, port and SID/Service name. Can confirm with DBA.
2. Use telnet to make sure DB is listening on the given PORT
    telnet DBHostName port
    e.g. telnet localhost 1521
3. Use dbping utility  to test DB network connectivity from weblogic host.
    java -classpath /OraclePS6/Middleware/wlserver_10.3/server/lib/weblogic.jar utils.dbping
ORACLE_THIN dbusername dbpassword dbURL
    e.g.
    java -classpath /OraclePS6/Middleware/wlserver_10.3/server/lib/weblogic.jar utils.dbping ORACLE_THIN soademo soademo localhost:1521/xe

weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: IO Error: Got minus one from a read call

Error:
Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: IO Error: Got minus one from a read call

Root Cause:
Reason can be the database is under maintenance or in inconsistent state.
Weblogic JDBC driver is looking for a connection and getting Could not create pool connection exception, which means the DB or network dropped the socket during the driver-DBMS handshake.

Resolution:
Make sure DB is up and running. If it's up and running contact DBA of respective DB for health check and make sure everything is good on DB side.

Exception [TOPLINK-4002] : oracle.toplink.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Internal error: Cannot obtain XAConnection

Error:
Exception [TOPLINK-4002] (Oracle TopLink - 11g Release 1 (11.1.1.1.0) (Build
090304)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Internal error: Cannot obtain
XAConnection weblogic.common.resourcepool.ResourceDeadException: Pool
SOADataSource has been disabled because of hanging connection tests, cannot allocate resources to applications

Root Cause:
Resource pool max test wait sec are less than Database response time.

Resolution:
1. Open the $DOMAIN_HOME/bin/setSOADomainEnv.cmd file.
2. Uncomment the lines shown in bold,
# connections are slow. See SOA documentation for more details.
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES}
-Dweblogic.resourcepool.max_test_wait_secs=30"
export EXTRA_JAVA_PROPERTIES
3. Save your changes and restart server.

Data Source test failed with ORA-28009: Connection as SYS should be as SYSDBA or SYSOPER

========================================================================
Applies to:
Weblogic: 10.3.6 and later
========================================================================
Problem Summary:
Application requires a XA data source to be configured on weblogic for DB connection and they have provided default SYS(admin) user for data source creation.
Data Source configuration test is failing with ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

Error:
Connection test failed.ORA-28009: connection as SYS should be as SYSDBA or SYSOPER <br/>oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)<br/>oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:397)<br/>oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389)<br/>oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:689)<br/>oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:452)<br/>oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)<br/>oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)<br/>oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:384)<br/>oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:811)<br/>oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)<br/>oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:678)<br/>oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:238)<br/>oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)<br/>oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:567)<br/>oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:404)<br/>oracle.jdbc.xa.client.OracleXADataSource.getPooledConnection(OracleXADataSource.java:674)<br/>oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:267)<br/>oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:134)<br/>weblogic.jdbc.common.internal.DataSourceUtil.testConnection(DataSourceUtil.java:314)<br/>com.bea.console.utils.jdbc.JDBCUtils.testConnection(JDBCUtils.java:734)<br/>...

========================================================================
Root Cause:
We can use SYS user only as a SYSDBA or SYSOPER. We can't use SYS as normal user.
SYS is the super user in Oracle database which is needed for many critical activity and we shouldn't use SYS schema for Data Source.
The error is generated becuase of the parameter O7_DICTIONARY_ACCESSIBILITY is set to FALSE. O7_DICTIONARY_ACCESSIBILITY controls restrictions on SYSTEM privileges.The default setting of false ensures that system privileges that allow access to objects in "any schema" do not allow access to objects in the SYS schema.

SQL> show parameter O7_DICTIONARY_ACCESSIBILITY

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
O7_DICTIONARY_ACCESSIBILITY          boolean     FALSE

========================================================================
Resolution:
1. Login to DB and create user/schema specific to application with required privileges and use same for data source creation.
2. To create user use below commands,
    create user user_name identified by password;
    grant connect, resource to user_name identified by password;

"Test Console" service is not running. Contact administrator to start this service in OSB

Error:
In OSB while trying to open test console for ProxyService or Business Service you might face below error,
"Test Console" service is not running. Contact administrator to start this service.

Root Cause:
Managed server state is unknown.

Resolution:
Would suggest to do clean restart of Managed server and check.

Either the WSDL URL is invalid or the WSDL file is not valid or incorrect. - WSDLException: faultCode=PARSER_ERROR: Failed to read wsdl

Error on EM test console:
Either the WSDL URL is invalid or the WSDL file is not valid or incorrect. - WSDLException: faultCode=PARSER_ERROR: Failed to read wsdl file at: "http://localhost:7001/soa-infra/services/default/assignDemoProject/copyassign_client_ep?WSDL", caused by: java.net.ConnectException. : java.net.ConnectException: Connection refused

Root cause:
In my case cluster front end was configured with invalid details. Common root cause is WSDL end point host name doesn't not match with the server host.

Resolution:
Solution 1: Correct the host name in wsdl end point and redeploy.
Solution 2: If cluster front end configuration is there make sure you have configured it correctly.

Weblogic Server subsystem failed. Reason: java.lang.IllegalArgumentException: Invalid - ve count -1

Error:
<Feb 18, 2014 9:48:51 PM SGT> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<Feb 18, 2014 9:48:51 PM SGT> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.IllegalArgumentException: Invalid -
ve count -1
java.lang.IllegalArgumentException: Invalid -ve count -1
        at weblogic.work.MinThreadsConstraint.<init>(MinThreadsConstraint.java:52)
        at weblogic.work.GlobalWorkManagerComponentsFactory.create(GlobalWorkManagerComponentsFactory.java:328)
        at weblogic.work.GlobalWorkManagerComponentsFactory.create(GlobalWorkManagerComponentsFactory.java:322)
        at weblogic.work.GlobalWorkManagerComponentsFactory.initialize(GlobalWorkManagerComponentsFactory.java:112)
        at weblogic.work.ServerWorkManagerFactory.initializeHere(ServerWorkManagerFactory.java:79)
        at weblogic.work.ServerWorkManagerFactory.initialize(ServerWorkManagerFactory.java:59)
        at weblogic.t3.srvr.BootService.start(BootService.java:61)
        at weblogic.t3.srvr.ServerServicesManager.startService(ServerServicesManager.java:461)
        at weblogic.t3.srvr.ServerServicesManager.startInStandbyState(ServerServicesManager.java:166)
        at weblogic.t3.srvr.T3Srvr.initializeStandby(T3Srvr.java:881)
        at weblogic.t3.srvr.T3Srvr.startup(T3Srvr.java:568)
        at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:469)
        at weblogic.Server.main(Server.java:71)
>
***************************************************************************
The WebLogic Server encountered a critical failure
Reason: Assertion violated
***************************************************************************
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class weblogic.protocol.ServerIdentityManager$Initializer
        at weblogic.protocol.ServerIdentityManager.findServerIdentity(ServerIdentityManager.java:64)
        at weblogic.protocol.URLManager.findAdministrationURL(URLManager.java:173)
        at weblogic.server.ServerLifeCycleRuntime.getLifeCycleOperationsRemote(ServerLifeCycleRuntime.java:1078)
        at weblogic.t3.srvr.ServerRuntime.sendStateToAdminServer(ServerRuntime.java:429)
        at weblogic.t3.srvr.ServerRuntime.updateRunState(ServerRuntime.java:415)
        at weblogic.t3.srvr.T3Srvr.setState(T3Srvr.java:206)
        at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:482)
        at weblogic.Server.main(Server.java:71)
Stopping Derby server...
Derby server stopped.

Root Cause: WorkManager is having Invalid count -1 for MinThreadsConstraint.

Resolution:
1. Go the config.xml file located at  $Domain_home/config.
2. Look for the work managers having - ve( here -1) count in config.xml.
3. Modify config.xml and provide a positive number as MinThreadsConstraint. e.g. 1
4. Save config.xml
5. Restart server. It should come up without any issues.

Error During weblogic Admin start: Error occurred during initialization of VM Could not reserve enough space for object heap

========================================================================
Applies to:
Weblogic Server: 10.3.6
========================================================================
Problem Summary:
Unable to start becuase of heap error.

Error Message:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine













========================================================================
Root Cause:
Heap allocated to server wasn't adequate
========================================================================
Resolution:
1. Go to setSOADomainEnv.cmd file located under C:\OraclePS6\Middleware\user_projects\domains\test_domain\bin

2. Set below default properties to,
set JAVA_OPTIONS=%JAVA_OPTIONS%
set DEFAULT_MEM_ARGS=-Xms512m -Xmx1024m
set PORT_MEM_ARGS=-Xms768m -Xmx1536m

if "%JAVA_VENDOR%" == "Oracle" goto OracleJVM
set DEFAULT_MEM_ARGS=%DEFAULT_MEM_ARGS% -XX:PermSize=128m -XX:MaxPermSize=512m
set PORT_MEM_ARGS=%PORT_MEM_ARGS% -XX:PermSize=256m -XX:MaxPermSize=768m

3. Restart the server using startWeblogic.cmd

What is SOA. What are the capabilities and advantages of SOA. What are the components of SOA?

1. What is SOA
SOA is an application architecture that is designed to achieve loose coupling among interacting software application by defining service once and reusing it many times.
In simple words SOA is set of principles and methodologies for designing and developing software in the form of inter operable services.
Loose coupling: It's a state in which impact of change either change in the provider or consumer is minimized across dependencies.

2. Capabilities and Advantages
Other than just being architecture SOA is set of principles, practices, framework by using which it is ensured that the right services are provided and consumed.
Capabilities of SOA are,

  1. Messaging
  2. Service discovery
  3. Orchestration
  4. Web Service monitoring and management
  5. Business Rules
  6. Event framework
  7. Business Activity Monitoring etc.

Advantages of SOA are,

  1. Loose Coupling
  2. Reusability
  3. Flexibility
  4. Agility
  5. Productivity
  6. Faster implementation
  7. Reduced cost and maintenance
  8. Reliability
  9. Scalability
3. Components of SOA
Components of SOA are,
  1. Jdeveloper
  2. Oracle Service Bus
  3. Complex event processing
  4. Meta data service repository
  5. Enterprise Manager
  6. Business activity Monitoring
  7. BPEL process manager
  8. BPEL
  9. Mediator
  10. Business Rules
  11. Human Workflow
  12. Adapters
  13. User Messaging Service
  14. B2B