When an application suddenly can't insert rows, the root cause usually falls into one of a few well-known categories: space, configuration, data format, or transactions. This post lists the most frequent culprits and the commands you can use to verify them.
Main Causes and How to Check
-
Dbspace Full – The most obvious blocker. Run
onstat -dto see space usage. If a dbspace is exhausted, add storage or purge old data. -
Non‑fragmented Table Hit Page Limit – A single fragment can hold at most about 16,775,134 pages. When you hit that ceiling, the insert fails. Use
oncheck -pt dbname:tablenameto check page usage and fragment the table if needed. - Encoding Incompatibility – Garbled characters or a mismatch between the client and server character sets will cause insert failures. Verify the locale settings on both sides.
-
Lock Conflicts – If the table lock mode is set to
PAGE, concurrent writers can block each other.onstat -khelps identify lock waits. -
Rolling Back Long Transactions – If a long transaction is rolling back, its inserted rows are undone, making it appear as if data was never written. Check
onstat -xfor transactions with anRflag and a non‑zerorb_time.
Quick Diagnostic Commands
onstat -d # dbspace status
oncheck -pt dbname:tablename # page count
onstat -k # lock waits
onstat -x # transaction / rollback status
In most cases, one of these checks will expose the bottleneck. Knowing them helps you restore insert operations quickly in your gbase database environment.
Top comments (0)