Querying v$lock table causes instance CPU to jump

Hi all. I run several queries to find out metrics on my Oracle instance for monitoring purposes. One of the queries I tried using to give me a PercentLockutilization is
SELECT round(NVL((count(b.sid)/a.value)*100,0.0),3) "Pct Lock Utilization" FROM v$lock b, v$parameter a WHERE a.name = 'dml_locks' GROUP BY a.value
Everytime I run this query however, the CPu usage of the Oracle instance spikes about 10 percentage points. At this point I am assuming it is something with the query causing this but I am not sure what that is. My question is if there is a better query to use to get lock utilization stats via a SQL statement? Any and all help is appreciated.

You must be coming from a Sybase/SQL Server background :-)
Lock utilization is not an issue in Oracle since there are an infinite number of locks available, and most locks (or latches or enqueues) are held for only a very short period of time. Having said that, the jump in CPU is not surprising.
The v$ tables are all complex memory structures and not physical tables. It is very expensive to query them and also slows the system, since Oracle needs to aquire latches (lightweight locks) to prevent changes to these structures, and do a lot of memory manipulation to get at the values.
TTFn
John

Similar Messages

  • SQL query against ConfigMgr DB causing 100% cpu usage on SQL server throughout day

    Hi, I am hoping someone here may have an idea of what I can do to resolve this as I am not much of a SQL guy. Here is what I know. Throughout the day, monday-friday, my ConfigMgr SQL server sits at 98-100% processor usage.
    Using the following query I have narrowed down the culprit of the high cpu usage throughout the day:
    SELECT p.spid, p.status, p.hostname, p.loginame, p.cpu, r.start_time, r.command,
    p.program_name, text
    FROM sys.dm_exec_requests AS r,
    master.dbo.sysprocesses AS p
    CROSS APPLY sys.dm_exec_sql_text(p.sql_handle)
    WHERE p.status NOT IN ('sleeping', 'background')
    AND r.session_id = p.spid
    Even though my knowledge of SQL is light, I believe the following output clearly defines the thread responsible for the high cpu usage. This "program_name" is present throughout the day and as long as its there, cpu usage remains at or near 100%:
    The text output of the above culprit is as follows (sorry this is long):
    -- Name : spDrsSummarizeSendHistory
    -- Definition : SqlObjs
    -- Scope : CAS_OR_PRIMARY_OR_SECONDARY
    -- Object : P
    -- Dependencies : <Detect>
    -- Description : Summarize DrsSendHistory information into DrsSendHistorySummary
    CREATE PROCEDURE spDrsSummarizeSendHistory
    AS
    BEGIN
    SET NOCOUNT ON;
    DECLARE @CurrentTime DateTime;
    DECLARE @SiteCode nvarchar(3);
    DECLARE @LastSummarizationTime DateTime;
    DECLARE @NextSummarizationTime DateTime;
    DECLARE @Interval INT; -- summarize interval in minutes
    DECLARE @ReplicationID INT
    DECLARE @iMaxID INT
    DECLARE @iCurrentID INT
    DECLARE @iBatchSize INT = 50
    DECLARE @ReplicationPattern NVARCHAR(255)
    DECLARE @TargetSite NVARCHAR(3);
    DECLARE @TimeTable TABLE (TargetSite NVARCHAR(3), StartTime DATETIME, EndTime DATETIME, PRIMARY KEY (TargetSite, StartTime, EndTime))
    DECLARE @TargetSites TABLE (SiteCode NVARCHAR(3) PRIMARY KEY)
    DECLARE @ChildTargetSites TABLE (TargetSite NVARCHAR(3), LastSummarizationTime DATETIME, [Interval] INT, PRIMARY KEY (TargetSite))
    DECLARE @ReplicationGroup TABLE (ID INT, ReplicationPattern NVARCHAR(255))
    IF OBJECT_ID(N'TempDB..#DrsSendHistorySummary') IS NOT NULL
    DROP TABLE #DrsSendHistorySummary
    CREATE TABLE #DrsSendHistorySummary (ID BIGINT IDENTITY(1, 1) NOT NULL, SourceSite NVARCHAR(3), TargetSite NVARCHAR(3), ReplicationGroupID INT, SyncDataSize BIGINT, CompressedSize BIGINT, UnCompressedSize BIGINT, MessageCount INT, ChangeCount INT, SummarizationTime DATETIME, PRIMARY KEY (ID))
    SET @CurrentTime = GETUTCDATE();
    SET @SiteCode = dbo.fnGetSiteCode();
    INSERT INTO @ReplicationGroup (ID, ReplicationPattern)
    SELECT RD.ID, RD.ReplicationPattern
    FROM ReplicationData RD
    WHILE EXISTS (SELECT * FROM @ReplicationGroup)
    BEGIN
    SELECT TOP (1) @ReplicationID = ID, @ReplicationPattern = ReplicationPattern FROM @ReplicationGroup
    TRUNCATE TABLE #DrsSendHistorySummary
    IF (((@ReplicationPattern = N'global' OR @ReplicationPattern=N'site') AND dbo.fnIsPrimary() = 1)
    OR (@ReplicationPattern = N'global_proxy' AND dbo.fnIsSecondary() = 1))
    BEGIN -- when current site is child
    SET @LastSummarizationTime = ISNULL(( SELECT MAX(SummarizationTime) FROM DrsSendHistorySummary WHERE SourceSite = @SiteCode AND ReplicationGroupID = @ReplicationID),
    (SELECT MIN(EndTime) FROM DrsSendHistory WHERE ReplicationGroupID = @ReplicationID) );
    SET @Interval = ISNULL((SELECT VALUE FROM RCMSQLCONTROLPROPERTY SCP, RCMSQLCONTROL SC
    WHERE SCP.ControlID = SC.ID AND SCP.Name = N'Send History Summarize Interval' AND SC.TypeID = 3 and SC.SiteNumber = dbo.fnGetSiteNumber()), 15); -- default 15 minutes
    DELETE @TargetSites
    INSERT INTO @TargetSites (SiteCode)
    SELECT DISTINCT SiteCode FROM DRS_MessageActivity_Send WHERE ReplicationID = @ReplicationID
    IF @LastSummarizationTime IS NOT NULL AND EXISTS (SELECT * FROM @TargetSites)
    BEGIN
    SET @NextSummarizationTime = DATEADD( minute, DATEDIFF(minute, 0, @LastSummarizationTime)/@Interval *@Interval + @Interval, 0);
    -- Summarized according to interval
    DELETE @TimeTable
    WHILE (@CurrentTime >= @NextSummarizationTime )
    BEGIN
    INSERT INTO @TimeTable (TargetSite, StartTime, EndTime)
    SELECT SiteCode, @LastSummarizationTime, @NextSummarizationTime FROM @TargetSites
    SET @LastSummarizationTime = @NextSummarizationTime;
    SET @NextSummarizationTime = DATEADD(mi, @Interval, @NextSummarizationTime );
    END
    INSERT INTO #DrsSendHistorySummary (SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, CompressedSize, UnCompressedSize, MessageCount, ChangeCount, SummarizationTime)
    SELECT @SiteCode, T.TargetSite, @ReplicationID, SUM(ISNULL(D.SyncDataSize, 0)), SUM(ISNULL(D.CompressedSize, 0)), SUM(ISNULL(D.UnCompressedSize, 0)), SUM(ISNULL(D.MessageCount, 0)), SUM(ISNULL(ChangeCount, 0)), T.EndTime
    FROM DrsSendHistory D RIGHT JOIN @TimeTable T ON D.EndTime >= T.StartTime AND D.EndTime < T.EndTime AND ReplicationGroupID = @ReplicationID AND T.TargetSite = D.TargetSite
    GROUP BY T.TargetSite, T.StartTime, T.EndTime;
    END
    END
    ELSE IF ((@ReplicationPattern = N'global' AND dbo.fnIsCAS() = 1)
    OR (@ReplicationPattern = N'global_proxy' AND dbo.fnIsPrimary() = 1))
    BEGIN -- when current site is parent
    DELETE @ChildTargetSites
    INSERT INTO @ChildTargetSites(TargetSite, LastSummarizationTime, [Interval])
    SELECT DISTINCT(DSH.SiteCode),
    ISNULL(( SELECT MAX(SummarizationTime) FROM DrsSendHistorySummary WHERE SourceSite = @SiteCode AND ReplicationGroupID = @ReplicationID AND TargetSite=DSH.SiteCode),
    (SELECT MIN(EndTime) FROM DrsSendHistory WHERE ReplicationGroupID = @ReplicationID) ) AS LastSummarizeTime,
    ISNULL((SELECT VALUE FROM RCMSQLCONTROLPROPERTY SCP, RCMSQLCONTROL SC WHERE SCP.ControlID = SC.ID AND SCP.Name = N'Send History Summarize Interval' AND SC.TypeID = 3 and SC.SiteNumber = dbo.fnGetSiteNumberBySiteCode(DSH.SiteCode)), 15) AS Interval
    FROM DRS_MessageActivity_Send DSH WHERE DSH.ReplicationID = @ReplicationID
    GROUP BY DSH.SiteCode;
    DELETE @TimeTable
    WHILE EXISTS (SELECT * FROM @ChildTargetSites)
    BEGIN
    SELECT TOP (1) @TargetSite = TargetSite, @LastSummarizationTime = LastSummarizationTime, @Interval = Interval FROM @ChildTargetSites
    SET @NextSummarizationTime = DATEADD( minute, DATEDIFF(minute, 0, @LastSummarizationTime)/@Interval *@Interval + @Interval, 0);
    -- Summarized according to interval
    WHILE (@CurrentTime >= @NextSummarizationTime )
    BEGIN
    INSERT INTO @TimeTable (TargetSite, StartTime, EndTime)
    SELECT @TargetSite, @LastSummarizationTime, @NextSummarizationTime
    SET @LastSummarizationTime = @NextSummarizationTime;
    SET @NextSummarizationTime = DATEADD(mi, @Interval, @NextSummarizationTime );
    END
    DELETE @ChildTargetSites WHERE TargetSite = @TargetSite
    END;
    INSERT INTO #DrsSendHistorySummary (SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, CompressedSize, UnCompressedSize, MessageCount, ChangeCount, SummarizationTime)
    SELECT @SiteCode, T.TargetSite, @ReplicationID, SUM(ISNULL(D.SyncDataSize, 0)), SUM(ISNULL(D.CompressedSize, 0)), SUM(ISNULL(D.UnCompressedSize, 0)), SUM(ISNULL(D.MessageCount, 0)), SUM(ISNULL(D.ChangeCount, 0)), @NextSummarizationTime
    FROM DrsSendHistory D RIGHT JOIN @TimeTable T ON D.EndTime >= T.StartTime AND D.EndTime < T.EndTime AND ReplicationGroupID = @ReplicationID AND T.TargetSite = D.TargetSite
    GROUP BY T.TargetSite, T.StartTime, T.EndTime;
    END;
    SELECT @iMaxID = MAX(ID), @iCurrentID = 0 FROM #DrsSendHistorySummary
    -- BATCH INSERT TO REAL TABLE
    WHILE (@iCurrentID < @iMaxID)
    BEGIN
    INSERT INTO DrsSendHistorySummary (SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, MessageCount, ChangeCount, SummarizationTime)
    SELECT SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, MessageCount, ChangeCount, SummarizationTime
    FROM #DrsSendHistorySummary WHERE ID > @iCurrentID AND ID <= (@iCurrentID + @iBatchSize)
    SET @iCurrentID = @iCurrentID + @iBatchSize
    END
    TRUNCATE TABLE #DrsSendHistorySummary
    DELETE @ReplicationGroup WHERE ID = @ReplicationID
    END
    END
    If anyone has any experience with this issue or anything similar and might be able to point me in the right direction, any responses would be greatly appreciated. Thanks for reading!

    Normally, this summary job every few mins which only summarize last few mins sending history. If the job was not running for long time, the first time, this sproc will summarize a lot more data than normal. So it could fail which will make things worse and
    worse over time.
    If sending summary data is not a big concern here, you can manually insert a dummy row with most recent time as Summarizationtime, so that, when summary job kicks in next time, it will only summary short interval data.
    DrsSendHistory is that the table records every sending on every group. This table is one of the key of replication logic. For your environment, on primary site, it could have up to 24(hrs) * 60 (mins) / 2 (sync interval) * 36(secondary sites) records per
    day for Secondary_Site_Replication_Configuration group and 24 * 60 / 5 * 22 records for Secondary Site Data.
    Umair Khan | http://blogs.technet.com/umairkhan
    Hi Umair,
    Thank you for the reply. My plan was to go ahead with your suggestions but what I tried first was to get my VM guy to give the SQL server access to more CPU resources. We had already configured it with what would have seemed to be plenty, as per Microsoft's
    sizing requirements, but I figured it couldn't hurt to rule out - he gave the SQL server access to a huge portion of the host processing power and since then CPU usage on the server has NOT been an issue.
    It would appear that the large amounts of secondary sites we have just simply put a lot of stress on the SQL server with out of the box replication settings. Since the entire VM host is for System Center only, and our other System Center servers are using
    very little resources, this solution has ended up being valid.
    Thanks again for everyone's help with this.

  • Safari causes the CPU to jump to about 50%

    on a lot of web pages. It's extremely irritating because the fans kick in and I have to wait for a good 7 minutes or so for them to quit spinning.
    Predominantly, Safari only seems to do this when it's on a page with video, i.e. YouTube, or any site that has embedded video. I've looked at all my plug-ins and it seems that they're all Universal, so I've come here to see if I'm alone in this issue.
    thanks.

    Hi -
    At first glance RAM seems sufficent. Have you tried Safari from another User Account to see if the same effect occurs?
    New User Account - Here is guidance from Apple on how to set up the account. You can ignore step 7 in the article.
    Also, on the system preference>Accounts panel, click on "log-in" options. There, select "fast user switching". This allows you to go back and forth between user accounts via an icon in your Menu Bar at the top of the computer screen.
    Log-on to the new account and start Safari. Try a few video sites. If the fans are "silent" then the problem is specific to your regular user account. Otherwise, similar response means possibly a system-wide problem.
    Post back with results.

  • Query Locks Table in SQL Server 2000!!

    Hi all!
    I am facing a strange problem. I am using MS SQL Server 2000.
    I have a JDBC program.It executes a query on a table (STUDENT) and fetches some record from it.
    The query gets executed fine for the first time but when the SELECT query is executed on the same table (i.e. STUDENT) from some other block of code within the same program the program hangs at the location where resultset is pointed to the first record i.e. RS.next();
    When I try to execute the SELECT query on the same table (i.e. STUDENT) from a query tool when the program is running it also gets hanged!!!
    It seems that after running the query for the first time on the STUDENT table from the next time its getting hanged....i believe the Table gets locked for some reason!!
    Is that normal with SQL Server 2000.....The same code works fine with other database!
    Please suggest...wht has to b done to gt it fixed!
    Thankz a loadz bforehand!
    Arun

    By default (transaction isolation level TRANSACTION_READ_COMMITTED ), SQL Server applies a shared read lock when you do a SELECT. This is should not prevent other selects on the same row / page but it will prevent updates / deletes.
    I found a link that explains SQL Server locking: http://databasejournal.com/features/mssql/article.php/3289661

  • Recently FireFox often has been causing 100% CPU usage and locks up until it finishes the process (various ones). Clearing cookies/cache didn't help. Any ideas?

    Windows 2000 SP4, 1g RAM, Firefox 9.0.1
    We keep IE6 and Firefox open simultaneously for 2 different mail accounts. Firefox was always much faster even with 3 or 4 tabs open, but for the past couple of weeks when trying to update a screen the CPU suddenly goes to 100% usage and of course nothing will move until the particular process is finished. Closing one or more tabs does not help. If I close Firefox completely with Task Manager CPU usage goes back down to nil. After restarting Firefox CPU usage may or may not go back up depending upon whether it tries to continue the previous task that was locking it up.
    It did not do this with Firefox 3.6 but then again it didn't happen immediately after updating to 9.0.1 either.

    100% CPU usage occurred most often toward the end of the working day when busy trying to print on-line postage. We don't have any memory-consuming plugins but according to the knowledge base articles Firefox memory usage can gradually increase during the day even if you do nothing. It seems that may be the problem so we close and restart Firefox more often now as that usually fixes the problem. However, if we get stuck on a particular website update that causes the CPU to to go 100%, we can always start Firefox without previous tabs so the update will stop, or simply use a different browser until we have time to let the computer play games with itself.
    So our workaround of restarting Firefox turns out to be the final solution (until we find something better - will post it if we do). Vic

  • MySQL lock table size Exception

    Hi,
    Our users get random error pages from vibe/tomcat (Error 500).
    If the user tries it again, it works without an error.
    here are some errors from catalina.out:
    Code:
    2013-07-31 06:23:12,225 WARN [http-8080-8] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:23:12,225 ERROR [http-8080-8] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:23:12,242 WARN [http-8080-8] [org.kablink.teaming.web.portlet.handler.LogContextInfoInterceptor] - Action request URL [http://vibe.*******.ch/ssf/a/do?p_name=ss_forum&p_action=1&entryType=4028828f3f0ed66d013f0f3ff208013d&binderId=2333&action=add_folder_entry&vibeonprem_url=1] for user [kablink,ro]
    2013-07-31 06:23:12,245 WARN [http-8080-8] [org.kablink.teaming.spring.web.portlet.DispatcherPortlet] - Handler execution resulted in exception - forwarding to resolved error view
    org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: org.kablink.teaming.domain.FolderEntry; nested exception is org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: org.kablink.teaming.domain.FolderEntry
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:654)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
    2013-07-31 06:23:36,474 ERROR [Sitescape_QuartzSchedulerThread] [org.quartz.core.ErrorLogger] - An error occured while scanning for the next trigger to fire.
    org.quartz.JobPersistenceException: Couldn't acquire next trigger: The total number of locks exceeds the lock table size [See nested exception: java.sql.SQLException: The total number of locks exceeds the lock table size]
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2794)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport$36.execute(JobStoreSupport.java:2737)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3768)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2733)
    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:264)
    Caused by: java.sql.SQLException: The total number of locks exceeds the lock table size
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
    at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
    2013-07-31 06:27:12,463 WARN [Sitescape_Worker-8] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:27:12,463 ERROR [Sitescape_Worker-8] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:27:12,463 ERROR [Sitescape_Worker-8] [org.jbpm.graph.def.GraphElement] - action threw exception: Hibernate operation: could not execute update query; uncategorized SQLException for SQL [update SS_ChangeLogs set owningBinderKey=?, owningBinderId=? where (entityId in (? , ?)) and entityType=?]; SQL state [HY000]; error code [1206]; The total number of locks exceeds the lock table size; nested exception is java.sql.SQLException: The total number of locks exceeds the lock table size
    org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute update query; uncategorized SQLException for SQL [update SS_ChangeLogs set owningBinderKey=?, owningBinderId=? where (entityId in (? , ?)) and entityType=?]; SQL state [HY000]; error code [1206]; The total number of locks exceeds the lock table size; nested exception is java.sql.SQLException: The total number of locks exceeds the lock table size
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
    2013-07-31 06:27:22,393 INFO [CT-kablink] [org.kablink.teaming.lucene.LuceneProvider] - (kablink) Committed, firstOpTimeSinceLastCommit=1375251142310, numberOfOpsSinceLastCommit=12. It took 82.62174 milliseconds
    2013-07-31 06:28:22,686 INFO [Sitescape_Worker-9] [org.kablink.teaming.jobs.CleanupJobListener] - Removing job send-email.sendMail-1375252102500
    2013-07-31 06:29:51,309 INFO [Sitescape_Worker-10] [org.kablink.teaming.jobs.CleanupJobListener] - Removing job send-email.sendMail-1375252191099
    2013-07-31 06:32:08,820 WARN [http-8080-2] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:32:08,820 ERROR [http-8080-2] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:32:10,775 WARN [http-8080-1] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:32:10,775 ERROR [http-8080-1] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:32:12,305 WARN [http-8080-1] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:32:12,305 ERROR [http-8080-1] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:32:14,605 WARN [http-8080-3] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:32:14,606 ERROR [http-8080-3] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:32:16,056 WARN [http-8080-3] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:32:16,056 ERROR [http-8080-3] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:32:24,166 WARN [http-8080-1] [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1206, SQLState: HY000
    2013-07-31 06:32:24,166 ERROR [http-8080-1] [org.hibernate.util.JDBCExceptionReporter] - The total number of locks exceeds the lock table size
    2013-07-31 06:32:24,167 WARN [http-8080-1] [org.kablink.teaming.spring.web.portlet.DispatcherPortlet] - Handler execution resulted in exception - forwarding to resolved error view
    org.springframework.jdbc.UncategorizedSQLException: Hibernate flushing: could not insert: [org.kablink.teaming.domain.AuditTrail]; uncategorized SQLException for SQL [insert into SS_AuditTrail (zoneId, startDate, startBy, endBy, endDate, entityType, entityId, owningBinderId, owningBinderKey, description, transactionType, fileId, applicationId, deletedFolderEntryFamily, type, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'A', ?)]; SQL state [HY000]; error code [1206]; The total number of locks exceeds the lock table size; nested exception is java.sql.SQLException: The total number of locks exceeds the lock table size
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.convertJdbcAccessException(HibernateTransactionManager.java:805)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:791)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:664)
    It always logs the Mysql error code 1206:
    MySQL :: MySQL 5.4 Reference Manual :: 13.6.12.1 InnoDB Error Codes
    1206 (ER_LOCK_TABLE_FULL)
    The total number of locks exceeds the lock table size. To avoid this error, increase the value of innodb_buffer_pool_size.
    The value of innodb_buffer_pool_size is set to 8388608 (8MB) on my server.
    In the documentation (MySQL :: MySQL 5.4 Reference Manual :: 13.6.3 InnoDB Startup Options and System Variables) it says that the default is 128MB.
    Can i set the value to 134217728 (128MB) or will this cause other problems? Will this setting solve my problem?
    Thanks for your help.

    I already found an entry from Kablink:
    https://kablink.org/ssf/a/c/p_name/s...beonprem_url/1
    But i think this can't be a permanent solution...
    Our MySQL Server version is 5.0.95 running on sles11

  • Slow response when query v$lock or some data dictionary

    Hello,
    We have a severe problem with our database performance problem. Here is the situation:
    1. When query data dictionary such as v$lock from any Windows machine on the network, the performance is slow (about 3 minutes.)
    2. When query v$lock directly on the server where database reside, the query come back fast (normal).
    3. When query user table such as employees from any windows machine on the network, the performance is normal.
    4. When query user table directly from server where the database reside, the query come back normal.
    Looking at v$session_wait on the slow query, it is waiting on "SQL*Net message to client".
    We have people from our network group, security group and did not find anything problem.
    Thank for you help!!!

    user8175606 wrote:
    Hello,
    We have a severe problem with our database performance problem. Here is the situation:
    1. When query data dictionary such as v$lock from any Windows machine on the network, the performance is slow (about 3 minutes.)
    2. When query v$lock directly on the server where database reside, the query come back fast (normal).
    3. When query user table such as employees from any windows machine on the network, the performance is normal.
    4. When query user table directly from server where the database reside, the query come back normal.
    Looking at v$session_wait on the slow query, it is waiting on "SQL*Net message to client".
    We have people from our network group, security group and did not find anything problem.
    Thank for you help!!!I saw the same problem several times. All of them were related with wrong execution plan in the v$lock (and dba_locks, and others based on v$lock). For instance due to "crazy" optimizer mode FIRST_ROWS.
    Also look at note 431770.1.
    I suggest that when you looked at v$session_wait and saw the event "SQL*Net message to client" state of the event was not = WAITING. Please check. It means that Oracle is not waiting but is burning CPU.
    Thus, please let us know - does another optimizer mode improve performance?
    select /*+ all_rows */ * from v$lock;
    select /*+ rule */ * from v$lock;

  • Infoset based Query creating locks on DSO Activations

    Hello Experts,
    We are current on SAP NetWeaver 7.3 on ORACLE data base version 11.2.0.3.0.
    We have a query thats built on top of an infoset ( Based on left outer join on 0material and 0mat_plant) when user executes the query its causing locks on DSO activations.
    DSO activations are on hold due to locks on following table RSRNEWSIDS. when BASIS investigated this issue they came up with following reason
    executing this infoset based query is causing the locks and if we kill this job the DSO Activations run fine.
    The design is as follows
    Infoset(0material --Lefter outer Join -- 0mat_plant) ---> MP ---> BEx Query.
    Question 1) Is it possible for a query to create locks and cause holds on DSO Activations? if so what would be the reason?
    Question 2) Any solution or any of you faced similar issue?
    any solution is highly appreciated and rewarded.
    Regards,
    Vamsi.

    Question 1) Is it possible for a query to create locks and cause holds on DSO Activations? if so what would be the reason?
    It all comes down to SID if a query needs an association between fact and dimensions it will use SID and if you doing an activation it readjusts the SIDS so needs to be locked for the most up to date data.
    Question 2) Any solution or any of you faced similar issue?
    Do your query execution before or after DSO activation.
    Cheers!
    Suyash

  • Select query on a table with 13 million of rows

    Hi guys,
    I have been trying to perform a select query on a table which has 13 millions of entries however it took around 58 min to complete.
    The table has 8 columns with 4 Primary keys looks like below:
    (PK) SegmentID > INT
    (PK) IPAddress > VARCHAR (45)
    MAC Address > VARCHAR (45)
    (PK) Application Name > VARCHAR (45)
    Total Bytes > INT
    Dates > VARCHAR (45)
    Times > VARCHAR (45)
    (PK) DateTime > DATETIME
    The sql query format is :
    select ipaddress, macaddress, sum(totalbytes), applicationname , dates,
    times from appstat where segmentid = 1 and datetime between '2011-01-03
    15:00:00.0' and '2011-01-04 15:00:00.0' group by ipaddress,
    applicationname order by applicationname, sum(totalbytes) desc
    Is there a way I can improve this query to be faster (through my.conf or any other method)?
    Any feedback is welcomed.
    Thank you.
    Mus

    Tolls wrote:
    What db is this?
    You never said.
    Anyway, it looks like it's using the Primary Key to find the correct rows.
    Is that the correct number of rows returned?
    5 million?
    Sorted?I am using MySQL. By the way, the query time has been much more faster (22 sec) after I changed the configuration file (based on my-huge.cnf).
    The number of rows returned is 7999 Rows
    This is some portion of the my.cnf
    # The MySQL server
    [mysqld]
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    skip-locking
    key_buffer = 800M
    max_allowed_packet = 1M
    table_cache = 256
    sort_buffer_size = 1M
    read_buffer_size = 1M
    read_rnd_buffer_size = 4M
    myisam_sort_buffer_size = 64M
    thread_cache_size = 8
    query_cache_size= 16M
    log = /var/log/mysql.log
    log-slow-queries = /var/log/mysqld.slow.log
    long_query_time=10
    # Try number of CPU's*2 for thread_concurrency
    thread_concurrency = 6
    Is there anything else I need to tune so it can be faster ?
    Thanks a bunch.
    Edited by: user578505 on Jan 17, 2011 6:47 PM

  • Error locking table TBTCO

    Hi,
    We are having issue in locking "Error locking table TBTCO" at our SM12 statics Maximum Number of Lock Owners     3603
    Even on increasing the enque/table_size it not effecting the lock owner. Our environment having enq replication server.
    The profile parameter for enque/serverinst = $(SCSID) (00)
    enque replication server instance number is 10
    What could be the correction need to be done?
    Regards,
    RMav

    You have to check the reason for the error in the lock.
    Get the Work Process number that logged the error in SM21. Check the trace file of this work proces. At the same timestamp of the error in SM21 you do find the root cause in the work process trace.
    Usually this is caused by a overflow in the enqueue table, but not always. For this reason you have to check the work process trace the reasl root cause.
    To check if the enqueue is suffering a overflow you should go to SM12 -> Extras -> Statistics
    If in the statistics you do find that the "Maximum Fill Level" reached the maximum number of locks in these itens, for example:
    Maximum Number of Lock Owners 39481
    Maximum Fill level 458                               
    Current Fill Level -25
    Maximum Number of Lock Arguments 39481  <<<
    Maximum Fill level 39480                                 <<<
    Current Fill Level 15
    Maximum Number of Lock Entries 39481    <<<
    Maximum Fill level 39480                             <<<
    this means that the enqueue was really suffering under an overflow situation.
    Just for your information, the TBCTO is the table for the status of the jobs. So, every job need
    to write the status in this table and also lock this table firstly.
    Clébio

  • Lock tables when load data

    Are there any way to lock tables when i insert data with SQL*Loader? or oracle do it for me automatically??
    how can i do this?
    Thanks a lot for your help

    Are there any problem if in the middle of my load (and commits) an user update o query data ?The only problem that I see is that you may run short of undo space (rollback segment space) if your undo space is limited and the user is running a long SELECT query for example: but this problem would only trigger ORA-1555 for the SELECT query or (less likely since you have several COMMIT) ORA-16XX because load transaction would not find enough undo space.
    Data is not visible to other sessions, unless, the session which is loading data, commits it. That's the way Oracle handle the read committed isolation level for transaction.
    See http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c21cnsis.htm#2689
    Or what happens if when i want to insert data someone has busy the table?You will get blocked if you try to insert data that has the same primary key as a row being inserted by a concurrent transaction.

  • SQL query with From table being entered in twice

    I have a query that is doing an exist clause with the inner select statement querying the T_PROJECTS table using two different alias "t3 & t2".
    SELECT t0.ID, t0.EFFECTIVEDATE, t0.CUSTOMERID, t0.PROJECTID, .... FROM T_FINANCIALDATAS t0 WHERE ((t0.PROJECTID = 2271) AND (EXISTS (SELECT t1.TMPUSERID FROM T_PROJECTS t3, T_PROJECTS t2 , T_PROJECTSUSERS t1 WHERE (((( t2.CUSTOMERID = 1) AND (t1.USERID = 2276)) AND (t1.PROJECTID = t3.ID )) AND ( t2.ID = t1.PROJECTID))) AND (t0.CUSTOMERID = 1)))
    They need to be combined so I'm using only one table alias. They way the query get's built is a little complicated. The Exist clause get's built as a ReportQuery and then that get's passed into another method which eventually is added to a top level Expression as such:
    ReportQuery existsQuery = new ReportQuery(existsClass, existsExpressionHolder.getExpression());
    expHolder.addAnd(expHolder.getExpressionBuilder().exists(existsQuery));
    Question: what causes the double table alias from showing up? From what I read it seems like it's caused when you use two different ExpressionBuilders?

    Could you include the code that builds the Expression.
    Perhaps try to reproduce the issue in a simple isolated example. Generally every ExpressionBuilder used in a query represents a table/alias.
    What version of TopLink are you using?
    The duplicate alias seems repetitive, but doesn't seem like it will have any effect on the query result, other than its efficiency.
    James : http://www.eclipselink.org

  • View Criteria in ADF Query Panel with Table-Class Cast Exception

    Hi,
    I am getting Class Cast Exception when using view criteria for ADF Query Panel with Table. The version I am using is 11g Release 1(11.1.1.2.0)
    Here is what I did:
    1. created a view criteria on a view object
    2. all are optional
    3. all are Strings
    3. Dragged the view criteria as a query component (ADF Query panel with Query table) on to the design layout
    and the error when I clicked the Search button is:
    javax.el.ELException: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
    at com.sun.el.parser.AstValue.invoke(AstValue.java:161)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1289)
    at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:115)
    at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
    at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at sni.foundation.facesextensions.filters.FoundationFilter.doFilter(FoundationFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._clearFilterCriteriaRows(FacesCtrlSearchBinding.java:4549)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._addFilterCriteria(FacesCtrlSearchBinding.java:4603)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:423)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
    Thanks
    Venkatesh

    Hi Frank.
    I'm using JDev 11.1.1.3.0 as you suggest the error is no longer present in the latest version.
    I can pick my query from the "Saved Search" pick list on the QueryPanel list of queries just fine, and it sets up the filter properly, but when I press the "Search" button, I get the same reported error...
    <RegistrationConfigurator><handleError> Server Exception during PPR, #1
    javax.el.ELException: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
         at com.sun.el.parser.AstValue.invoke(AstValue.java:161)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1303)
         at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:115)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:414)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._clearFilterCriteriaRows(FacesCtrlSearchBinding.java:4588)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._addFilterCriteria(FacesCtrlSearchBinding.java:4642)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:424)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
         ... 42 more

  • Query works fine in DEV instance but not in PROD instance

    Hi,
    I got an exceptional situation. I wrote a query to get the sign-on audit information. The query works fine in Development instance and executes within 2 seconds. But if i run the same query in production instance it does not finish execution. I checked for around 2 hours and after that i just stopped it. Does any one have any idea to find about the problem like to check temporary table space or any other thing please let me know. so that i can suggest the DBA to check for those parameters.
    RDBMS : 11.1.0.7.0
    Oracle Applications : 12.1.3
    I am using Oracle SQL Developer 2.1.1.64
    I am missing TOAD so much. My current organization dont have license to use TOAD.
    Regards,
    Syed

    If your compnay does not have a Toad License, then you can use OracleSqlDeveloper.
    Its free to use and made by Oracle.
    You should post a query execution plan
    explain plan for <your sql_statement>
    and then issue this command:
    select * from table(dbms_xplan.display());It's best if you spool the output through sqlplus and then post it up here.
    I see you are using Sqldeveloper. The latest release is 3.2 which was only released within the last month.
    Edited by: Keith Jamieson on Oct 25, 2012 1:21 PM
    Added sqldeveloper note

  • IDOC Receiver Adapter, getting Lock Table Overflow to CRM System

    Hello SDN!!!
    This scenario is for PI to process a file and send to CRM via IDOC. The IDOCu2019s are only being created and not processed until later.
    Problem: I am getting a Lock Table Overflow error in method IDOC_INBOUND_ASYNCHRONOUS via sm58 in PI which points to the CRM box.
    I have been searching many forums and every solution seems to indicate increasing the lock table, the problem with that solution is we are currently trying to create (not process yet) 80000 IDOCu2019s. This would allocate too much for the lock table.
    So my question is this, Shouldnu2019t the lock be released when the IDOC gets created or none the less when a packet of IDOCu2019s via content management (breaking up the file in 1000 increments) finish. The lock table in CRM keeps increasing until all rows from the file, sent via IDOC adapter in 80 messages with 1000 IDOCu2019s per messagein the table are complete (80 separate messages in sxmb_moni).
    Background:
    IDOC was imported, changed to include unbounded and reimported.
    Content Management breaks the file into 80 different segments, thus creating 80 distinct mappings with distinct MessageIdu2019s.
    80 IDOC packets are sent to CRM, via IDOC adapter and sm58.
    TCODE sm12 in CRM shows the table to keep growing and locks not released until full message is complete.
    Any help would be appreciated
    Cheers
    Devlin

    The only way to process the IDOCs in this case is by increasing the "enque/table_size" parameter in order to create the required IDOCs. You can increase the value for this parameter up to 102400 (beyond that can cause performance issues). Since you need to handle 80000, this shouldn't be an issue.
    Please refer to the notes below for more information about the lock queue overflow and management.
    [Note 552289 - FAQ: R/3 Lock management|https://websmp230.sap-ag.de/sap(bD1wdCZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=552289]
    [Note 13907 - System error in the block handler, overflow lock table|https://websmp230.sap-ag.de/sap(bD1wdCZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=13907]

Maybe you are looking for

  • "Add-On Software" CD for LV6.1 won't install.

    Following NI Forums Knight Dan Knutson's advice to install a LV version earlier than 8.5 in order to convert 40 VIs written in LV5.1 to LV8.5.1, I attempted to install LabVIEW 6.1. There is a CD that won't install. It is the "Add-On Software" LV6.1 C

  • Install update for adobe reader xi 11.00.379 - error 1648

    i have windows xp home edition + sp2 + sp3, hebrew language. i have adobe reader xi 11.00.379 - free version. i got a message for existing of an update. i downloaded the update and when i tried to install the update, i got error 1648. i did'nt find t

  • Support des fichiers vidéos dans LR4 : M2T ou M2TS

    Selon toute vraisemblance les fichiers vidéos de capture (HDV) .M2T ne sont pas pris en charge par LR4. La documetation indique le support de ces fichiers (AVCHD) le support indique connaitre le PB mais pas de solutions à l'horizon. Il doit s'agir d'

  • Regexp_replace, but not enclosed in quotas

    select regexp_replace(q'#Can I use 'ORACLE :regular :expressions' to replace all :words starting with a :colon with an :asterisk but only if they are not enclosed in 'single quotas'?#',':\w+','*') txt from dual; TXT Can I use 'ORACLE * *' to replace

  • Found a column bug; who do i send file to?

    Hi; found a bug in Numbers 1.01; i dumped a bunch of data (my iPhone records from the "print record" screen on the AT&T site) into Numbers to set up a database. Somehow, column "C" ended up very small / has a Plus sign in it in every field down the p