I receive for a lot of queries on my FTS indexes this exception:
com.google.appengine.api.search.SearchException >>
Temporary search service error
com.google.appengine.api.search.IndexImpl$4.convertException(IndexImpl.java:354)
com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:97)
com.google.appengine.api.search.FutureHelper.getInternal(FutureHelper.java:73)
com.google.appengine.api.search.FutureHelper.quietGet(FutureHelper.java:32)
com.google.appengine.api.search.IndexImpl.search(IndexImpl.java:505)
This error appears for some period of time for certain queries, then it works for that query, but fails for others.
Can you help me with this?
I can provide additional data on request!
Related
I have been trying to find a way to delete a user using OTDS Rest web service, but I am not able to do so as I am receiving the following error while deleting a user.
"Cannot delete synchronized objects"
Can anyone please help on how can we delete user from OTDS using its REST Api?
I have tried to delete the user manually by using the OTDS Rest link, but still getting the following error.
http://<SERVERNAME>:<PORT>/otdsws/api/index.html?rest#!/users/deleteUser_delete_3
Error:
{
"status": 3012,
"error": "Cannot delete synchronized objects"
}
I believe the documentation is quite clear that you can not delete users from synchronized partitions. This is considered a safety feature I think.
I am trying to troubleshoot an issue that presents as different database errors such as, ORA-01000: maximum open cursors exceeded or Unable to create DB Connection. I have reviewed the PLSQL to determine if cursors were left open and all are closed even if there is an error.
The java application and background are as follows:
The original application was a 3-tiered system:
GUI app. -> server app -> 11g Oracle database
The enhancement was to add an API service in a Pivotal Cloud Foundry (PCF) environment.
So this architecture was like this:
Close Function: GUI app -> Server App -> API service -> Database.
All other Functions: GUI app -> Server App -> Database.
This was put into production and run for a week without any database issues described above.
Then another enhancement was added in which the API Service communicates with several other services all in PCF in which 2 communicate with the same oracle database. Now during heavy volume we are getting these database errors.
It seems to me that the Oracle database cannot keep up with the requests from these additional services. But how can I demonstrate that. We have AppD configured for the servers but not the database. Are there queries that I can run in the prod env. that shows that these PCF applications are causing the issue? Or should I look in another area?
Thanks,
UPDATE
I looked at the legacy application and the result sets are closed. The other 3 PCF applications use Spring Boot to connect to the database. From my understanding, closing connections and result sets do not have to be explicitly closed. JDBCTemplate closes these connections/result sets. The PLSQL added has an additional cursor which is closed on success and exception.
UPDATE
I created a query that shows the total open cursor by sessionID
This is the query:
select b.sid, b.username, b.osuser, sum(a.value) total_opened_current_cursors
from sys.v_$statname c,
sys.v_$sesstat a,
sys.v_$session b
where a.statistic#=c.statistic# and
b.sid=a.sid and
c.name in ('opened cursors current') and
(b.username is not null or b.username <> '' )
group by b.sid, b.username, b.osuser
order by total_opened_current_cursors desc
Now, I need to link the sessionID with the application that has this session.
The osuser for the top ones is NULL.
Also, most of the sessions' status are INACTIVE
How to identify the application to the session?
Secondly, is the session is inactive, which I thought meant that no query is happening so why are there open cursors?
**UPDATE**
So, I wrote a query that returns the top 10 sessions with the highest open cursors
select *
FROM
(
select b.sid, b.username, b.osuser, b.status, sum(a.value) total_opened_current_cursors
from sys.v_$statname c,
sys.v_$sesstat a,
sys.v_$session b
where a.statistic#=c.statistic# and
b.sid=a.sid and
c.name in ('opened cursors current') and
(b.username is not null or b.username <> '' )
group by b.sid, b.username, b.osuser, b.status
order by total_opened_current_cursors desc
)
WHERE ROWNUM <= 10;
I found the SQL_TEXT that accounts for most of the open cursors...by far! (87%)
So, how do I find the query that calls this SQL?
There are at least 5 services that hit the database. Some of the services call PLSQL stored procedures some call raw SQL text. The query that accounts for the open cursors is listed as a SELECT statement. Does that mean it is NOT a stored procedure? Or can this SELECT be called within the stored procedures.
How do I find the connection that uses this session?
Sorry, I'm no Java person. Currently I'm playing with JBoss Teiid hoping that the tool can provide us a data virtualization layer among multiple data sources. I managed to install Teiid 10.2.1 on Wildfly 11. I started to set up various source models from multiple flavor of data sources.
First I created a flat file source model. I can preview the table fine. Next I created a MySQL source model. When I tried to preview the table, it gave me
Error deploying "PREVIEW-9b7b127a-cc80-4751-be77-2053c495daa8" - please check the server log for more details
By looking into the log, the problem seems to be
2018-08-19 19:38:53,878 WARN [org.teiid.RUNTIME] (Worker1_async-teiid-threads2) TEIID50036 VDB PREVIEW-9b7b127a-cc80-4751-be77-2053c495daa8.1.0.0 model "MySQLSourceModel" metadata failed to load. Reason:TEIID31259 In the statement ending with token teiid_mysql5 on line 2 column 61 the ddl is not valid: TEIID60017 Invalid prefix teiid_mysql5, teiid_ is reserved for Teiid use.: org.teiid.metadata.ParseException: TEIID31259 In the statement ending with token teiid_mysql5 on line 2 column 61 the ddl is not valid: TEIID60017 Invalid prefix teiid_mysql5, teiid_ is reserved for Teiid use.
I exported the model into Teiid DDL, it appears containing the fol,lowing
SET NAMESPACE 'http://www.teiid.org/ext/relational/2012' AS teiid_mysql5
But I can't find anywhere that allows me to change the namespace setting. Then I create an VDB from the model hoping that I can preview the table by executing the VDB. But I still got an error stating
19:53:09,906 WARN [org.teiid.SECURITY] (NIO3) TEIID40011 Processing exception 'TEIID50072 The username "user" and/or password and/or payload token could not be authenticated by security domain teiid-security.' for session null. Exception type org.teiid.client.security.LogonException thrown from org.teiid.jboss.JBossSecurityHelper.authenticate(JBossSecurityHelper.java:152). Enable more detailed logging to see the entire stacktrace.
19:53:09,945 WARN [org.teiid.SECURITY] (NIO0) TEIID40011 Processing exception 'TEIID50072 The username "user" and/or password and/or payload token could not be authenticated by security domain teiid-security.' for session null. Exception type org.teiid.client.security.LogonException thrown from org.teiid.jboss.JBossSecurityHelper.authenticate(JBossSecurityHelper.java:152). Enable more detailed logging to see the entire stacktrace.
How can I add org.teiid.jboss.JBossSecurityHelper.java into eclipse? Thank you very much in advance for any help.
Hello i got a program that restores databases from .bak files and it works fine when there is no database with that name but when i try it when there already is an database with the same name i get this error
Could not send response error 500: javax.servlet.ServletException: javax.servlet.ServletException: java.lang.RuntimeException: java.lang.IllegalStateException: org.springframework.dao.TransientDataAccessResourceException: StatementCallback; SQL [IF EXISTS (SELECT name FROM sys.databases WHERE name = N'utv_johan')
BEGIN
ALTER DATABASE utv_johan SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
drop database utv_johan;
END
]; ALTER DATABASE failed because a lock could not be placed on database 'utv_johan'.
I am doing a new version of an old app and on the old one it works fine with the statement and all. and i use the same code for this but with a new React GUI. Anyone know how this error occurs and how to fix it? If you need more info feel free to ask! i saw someone here with same error when he were trying to take down his sql server. But i have done nothing with the database same calls as the old version.
Its seem as after some more testing that it sometimes works and throws no error at all.
It looks like your DEADLOCK_PRIORITY is equal to or less than another session and thus, you aren't able to ROLLBACK their transaction. You can explicitly set your priority and see if this resolves it.
USE [MASTER]
SET DEADLOCK_PRIORITY 10
ALTER DATABASE utv_johan SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE utv_johan;
I am using Twitter4J 2.2.5 (latest, tried other versions). And can no longer get direct messages to work at all. The same code used to work a while ago. I assume Twitter changed something.
I'm using
Twitter.getDirectMessages()
and it gives the error below. No idea why, I can see the direct messages for the account if I login, but always get this error. The limit error makes no sense, as the account is no where near the limit.
Other API work, like followers/fried/status/etc.
403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (http://support.twitter.com/forums/10711/entries/15364).
Relevant discussions can be on the Internet at:
http://www.google.co.jp/search?q=00919618 or
http://www.google.co.jp/search?q=332bf6ca
TwitterException{exceptionCode=[00919618-332bf6ca], statusCode=403, retryAfter=0, rateLimitStatus=RateLimitStatusJSONImpl{remainingHits=107, hourlyLimit=350, resetTimeInSeconds=1328297, secondsUntilReset=1116, resetTime=Fri Feb 03 14:39:45 EST 2012}, version=2.2.2}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65)
at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:93)
at twitter4j.TwitterImpl.get(TwitterImpl.java:1721)
at twitter4j.TwitterImpl.getDirectMessages(TwitterImpl.java:874)
at org.pandora.sense.twitter.TwitterDirectMessaging.checkDirectMessages(TwitterDirectMessaging.java:44)
at org.pandora.sense.twitter.TwitterDirectMessaging.checkProfile(TwitterDirectMessaging.java:35)
at org.pandora.sense.twitter.Twitter$1.run(Twitter.java:100)
at java.lang.Thread.run(Thread.java:662)
Twitter has some time ago changed the rules for direct messages. An app must be especially authorized by the user to access the direct messages.
Did you make sure this is true for you? You may go to the twitter web site and check for the app.
To get the direct message you should try the below code.It works for me.
getDirectMessages(); gives list of direct messages. We need to put for loop to get text of each message.
List<DirectMessage> messages = twitter.getDirectMessages();
for (DirectMessage message : messages)
{
System.out.println(message.getText());
}
Let me know if you get any error.