Consultor Eletrônico



Kbase P17983: SonicMQ broker shutsdown with ERROR XSDG1: Page Page(262143,null) could not be written to disk, plea
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/10/2008
Status: Unverified

FACT(s) (Environment):

IBM AIX
SonicMQ 4.x

SYMPTOM(s):

Cannot start broker because of Cloudscape database exception

ERROR XSDG1: Page Page(262143,null) could not be written to disk

A file cannot be larger than the value set by ulimit.: java.
io.IOException'.

please check if disk is full.
at c8e.ae.b.newException(Unknown Source)
at c8e.aa.u._nn(Unknown Source)
at c8e.aa.u.createIdentity(Unknown Source)
at c8e.aa.u.createIdentity(Unknown Source)
at c8e.du.a.takeOnIdentity(Unknown Source)
at c8e.dk.c._j34(Unknown Source)
at c8e.dk.c.create(Unknown Source)
at c8e.aa.n._mp(Unknown Source)
at c8e.aa.n.gl_(Unknown Source)
at c8e.ap.g.addPage(Unknown Source)
at c8e.ap.i.addPage(Unknown Source)
at c8e.x.b._eb(Unknown Source)
at c8e.x.b.insertAndFetchLocation(Unknown Source)
at c8e.i.cc.insertRow(Unknown Source)
at c8e.i.cp._vf(Unknown Source)
at c8e.i.cp._vf(Unknown Source)
at c8e.i.cp.open(Unknown Source)
at c8e.ca.g._xn(Unknown Source)
at c8e.ca.g.execute(Unknown Source)
at c8e.l.i.executeStatement(Unknown Source)
at c8e.l.f.execute(Unknown Source)
at c8e.l.f.executeUpdate(Unknown Source)
at progress.message.broker.BrokerDatabase.Ug_(:1446)
at progress.message.broker.lm.ld_(:555)
at progress.message.broker.MsgSaver.threadMain(:372)
at progress.message.zclient.DebugThread.run(:141)
SQLException(SQLState=XSDG1, errorCode=45000): Page Page(262143,null) could not be written to disk, please check if disk
is full.
SQLException(SQLState=XJ001, errorCode=0): Java exception: 'A file cannot be larger than the value set by ulimit.: java.
io.IOException'.
[2002] progress.message.db.EDatabaseException: SQL Exception: Page Page(262143,null) could not be written to disk, pleas
e check if disk is full.
at progress.message.broker.BrokerDatabase.Ig_(:5791)
at progress.message.broker.BrokerDatabase.Ug_(:1463)
at progress.message.broker.lm.ld_(:555)
at progress.message.broker.MsgSaver.threadMain(:372)
at progress.message.zclient.DebugThread.run(:141)
Error performing save/delete operation - shutting down broker
[2002] progress.message.db.EDatabaseException: SQL Exception: Page Page(262143,null) could not be written to disk, pleas
e check if disk is full.
at progress.message.broker.BrokerDatabase.Ig_(:5791)
at progress.message.broker.BrokerDatabase.Ug_(:1463)
at progress.message.broker.lm.ld_(:555)
at progress.message.broker.MsgSaver.threadMain(:372)
at progress.message.zclient.DebugThread.run(:141)
SQL Exception: No current connection.
at c8e.l.h._uv(Unknown Source)
at c8e.l.h._uv(Unknown Source)
at c8e.l.h.noCurrentConnection(Unknown Source)
at c8e.l.n.setupContextStack(Unknown Source)
at c8e.l.n.rollback(Unknown Source)
at progress.message.db.Database.rollback(:527)
at progress.message.broker.BrokerDatabase.Rg_(:1594)
at progress.message.broker.MsgSaver.threadMain(:383)
at progress.message.zclient.DebugThread.run(:141)
SQLException(SQLState=XJ010, errorCode=40000): No current connection.
[2002] progress.message.db.EDatabaseException: SQL Exception: No current connection.
at progress.message.db.Database.KS_(:1621)
at progress.message.db.Database.rollback(:531)
at progress.message.broker.BrokerDatabase.Rg_(:1594)
at progress.message.broker.MsgSaver.threadMain(:383)
at progress.message.zclient.DebugThread.run(:141)

CAUSE:

Hardlimit for files for the user account was set to 2Mio blocks ( 2GB )
and the Cloudscape database segments reached that limit in size.

You can check the user limits with the commands:

ulimit -Ha
ulimit -Sa

FIX:

Increase the Hard and Soft limit for files for the user account who is starting the broker.
There exists also a possibility to try to make the database smaller using the compress options the cloudscape database maintenance utilities provide.

Example:

"%SONICMQ_JRE%" -cp "%SONICMQ_DBCLASS%" -Dij.protocol=jdbc:cloudscape: -Dij.database="%db_path%";create=false COM.cloudscape.tools.ij compress.sql

with the following contents of compress.sql:

ALTER TABLE SonicMQMessages COMPRESS;
ALTER TABLE SonicMQMessageInfo COMPRESS;
ALTER TABLE SonicMQUndelMsgs COMPRESS;
ALTER TABLE SonicMQQMessages COMPRESS;
ALTER TABLE SonicMQUserIdMapping COMPRESS;
ALTER TABLE SonicMQSubscriptions COMPRESS;
ALTER TABLE SonicMQRouteInfo COMPRESS;
DISCONNECT;
exit;

Before compressing the database be sure to have a valid backup.