Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

AEM Oracle database connectivity not working

Avatar

Avatar
Validate 1
Level 1
mohitaem
Level 1

Likes

0 likes

Total Posts

7 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Affirm 1
View profile

Avatar
Validate 1
Level 1
mohitaem
Level 1

Likes

0 likes

Total Posts

7 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Affirm 1
View profile
mohitaem
Level 1

09-04-2020

Hi Team,

 

I am trying to connect with Oracle database 19c. I have given JDBC configuration and used the below code. But in the below code, I am getting datasource pool as "No data source found with name 'AppCloudDB' (after asking 0 providers)".

 

 

image.png

 

 

Can you please help me to find where I am doing a mistake?

 

@SlingServlet(paths = "/bin/getDB", methods = "GET", metatype=true, label = "AppCloud Database Connectivity",
description = "AppCloud Database Connectivity")
public class TestingDB extends SlingAllMethodsServlet{

/**
*
*/
private static final long serialVersionUID = 1L;
protected static final Logger LOGGER = LoggerFactory.getLogger(TestingDB.class);

@Reference
public DataSourcePool dataSourcePoolService;

ResultSet rs = null;
PreparedStatement pstmt = null;

PrintWriter writer = null;

@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
throws ServletException, IOException {
writer = response.getWriter();
LOGGER.debug("Entering appcloud test DB class");
int results = getData();
if(results > 0){
writer.write("Connection to DB Successful. Demo Query retrieves "+results+ " items.");
}else{
writer.write("\n\nConnection to DB UnSuccessful. Demo Query retrieves "+results+ " items.");
}
LOGGER.error("--> Total Results: "+results);
}

public int getData(){
int rowCount = 0;
Connection c = null;
try {
c = getConnection();
String query = "Select * FROM ac_content_type";
pstmt = c.prepareStatement(query);
rs = pstmt.executeQuery();

while(rs.next()){
rowCount++;
}
LOGGER.debug("Total Rows Retrieved"+rowCount);
LOGGER.debug("Exiting appcloud test DB class");
} catch (DataSourceNotFoundException e) {
LOGGER.error("DataSourceNotFoundException while attempting to find a data source. make sure data source exists in AEM configuration.");
writer.write("DataSourceNotFoundException while attempting to find a data source. make sure data source exists in AEM configuration. Exception received is: "+e);
} catch (SQLException e) {
LOGGER.error("SQLException while connecting to AppCloud DB.");
writer.write("SQLException while connecting to AppCloud DB. Exception received is: "+e);
} finally {
try {
c.close();
} catch (SQLException e) {
LOGGER.error(AppCloudConstants.SQL_EXCEPTION, e);
}
}
return rowCount;
}

private Connection getConnection() throws DataSourceNotFoundException, SQLException{
DataSource ds = null;
Connection c = null;
ds = (DataSource) dataSourcePoolService.getDataSource("AppCloudDB");
c = ds.getConnection();
return c;
}
}

We are using ojdbc14.jar with it. 

 

We were using 6.3 till now and things were working fine. With 6.5, its not creating data source. 
Do we have to do anything in 6.5 for datasource. 

Accepted Solutions (0)

Answers (1)

Answers (1)

Avatar

Avatar
Give Back 5
Employee
vanegi
Employee

Likes

392 likes

Total Posts

378 posts

Correct Reply

148 solutions
Top badges earned
Give Back 5
Give Back 3
Give Back 10
Give Back
Boost 50
View profile

Avatar
Give Back 5
Employee
vanegi
Employee

Likes

392 likes

Total Posts

378 posts

Correct Reply

148 solutions
Top badges earned
Give Back 5
Give Back 3
Give Back 10
Give Back
Boost 50
View profile
vanegi
Employee

14-07-2020

Please make sure the Connections Pool service configuration is correct. Verify the property names, values, and data types. You can use the following example JSP code that obtains an instance of the hsqldbds data source, executes a simple SQL query, and displays the number of results that are returned.

 

<%@include file="/libs/foundation/global.jsp"%><%
%><%@page session="false"%><%
%><%@ page import="com.day.commons.datasource.poolservice.DataSourcePool" %><%
%><%@ page import="javax.sql.DataSource" %><%
%><%@ page import="java.sql.Connection" %><%
%><%@ page import="java.sql.SQLException" %><%
%><%@ page import="java.sql.Statement" %><%
%><%@ page import="java.sql.ResultSet"%><%
%><html>
<cq:include script="head.jsp"/>
<body>
<%DataSourcePool dspService = sling.getService(DataSourcePool.class);
  try {
     DataSource ds = (DataSource) dspService.getDataSource("hsqldbds");
     if(ds != null) {
         %><p>Obtained the datasource!</p><%
         %><%final Connection connection = ds.getConnection();
          final Statement statement = connection.createStatement();
          final ResultSet resultSet = statement.executeQuery("SELECT * from INFORMATION_SCHEMA.SYSTEM_USERS");
          int r=0;
          while(resultSet.next()){
             r=r+1;
          }
          resultSet.close();
          %><p>Number of results: <%=r%></p><%
      }
   }catch (Exception e) {
        %><p>error! <%=e.getMessage()%></p><%
    }
%></body>
</html>