长事务

static void zffObjectARX_MyCommand14(void)
{
// Add your code for command zffObjectARX._MyCommand14 here
ACHAR* fileName;
AcDbDatabase* pDb;
AcDbObjectId transId;
struct resbuf* filename;
filename=acutNewRb(RTSTR);
acedGetFileD(_T("请选择要检出的图"),NULL,_T("dwg"),0,filename);
pDb=new AcDbDatabase(Adesk::kFalse);
fileName=filename->resval.rstring;
pDb->readDwgFile(fileName);

AcDbBlockTable *pBlk=NULL;
AcDbBlockTableRecord *pBlkRcd=NULL;
pDb->getSymbolTable(pBlk,AcDb::kForRead);
pBlk->getAt(ACDB_MODEL_SPACE,pBlkRcd,AcDb::kForRead);
pBlk->close();
AcDbObjectIdArray objIds;
AcDbBlockTableRecordIterator* it=NULL;
pBlkRcd->newIterator(it);
pBlkRcd->close();
AcDbEntity* pEnt=NULL;
for (it->start();!it->done();it->step())
{
it->getEntity(pEnt,AcDb::kForRead);
if (pEnt->isKindOf(AcDbCircle::desc()))
{
objIds.append(pEnt->objectId());
}
}
pEnt->close();
delete it;

AcDbBlockTable* pBlkCur=NULL;
AcDbBlockTableRecord* pBlkRcdCur=NULL;
acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlkCur,AcDb::kForRead);
pBlkCur->getAt(ACDB_MODEL_SPACE,pBlkRcdCur,AcDb::kForWrite);
pBlkCur->close();
AcDbObjectId objIdCur=pBlkRcdCur->objectId();
pBlkRcdCur->close();

AcDbIdMapping p;
acapLongTransactionManagerPtr()->checkOut(transId,objIds,objIdCur,p);
//AcDbObject* pObj=NULL;
AcDbLongTransaction* pLongTrans;
if (acdbOpenObject(pLongTrans,transId,AcDb::kForWrite)==Acad::eOk)
{
//AcDbLongTransaction* pLongTrans=AcDbLongTransaction::cast(pObj);

AcDbLongTransWorkSetIterator* pItor=NULL;
pLongTrans->newWorkSetIterator(pItor);
int index;
acedGetInt(_T("\n输入要改变的颜色值:"),&index);
for (pItor->start();!pItor->done();pItor->step())
{
AcDbEntity* pEnt1=NULL;
acdbOpenObject(pEnt1,pItor->objectId(),AcDb::kForWrite);
pEnt1->setColorIndex(index);
pEnt1->close();
}

delete pItor;
ACHAR str[20]={0};
acedGetString(0,_T("\n观察实体的改变,按回车结束!"),str);
pLongTrans->close();
}

acapLongTransactionManagerPtr()->checkIn(transId,p);
pDb->saveAs(fileName);
acutRelRb(filename);
delete pDb;
pDb=NULL;

}

时间: 2025-01-04 16:43:19

长事务的相关文章

OGG运维优化脚本(四)-信息修改类--长事务跳过

文件名: skiptrans.sh skip.sh 所在路径:$HOME/ggscript/ggtrandata 功能:该脚本用于重启抽取进程时跳过长事务,可自动识别1小时以上的长事务并批量跳过,skiptrans.sh通过edit脚本选择调用,skip.sh用于在其他脚本中调用用,例如allstop.sh全goldengate进程停止脚本 Ps:目前该脚本目前仅适用于AIX和LINUX系统 skiptrans.sh #!/bin/bash function date2seconds {    

监控MySQL长事务脚本

监控长事务的脚本 #!/bin/bashmysql -N -uroot -p'密码' -e "select now(),(UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(a.trx_started)) diff_sec,b.id,b.user,b.host,b.db,d.SQL_TEXT from information_schema.innodb_trx a inner join information_schema.PROCESSLIST b on a.TRX_

ogg-01027(长事务)

OGG-01027(长事务) 示例9-25: WARNING OGG-01027  Long Running Transaction: XID 82.4.242063, Items 0,  Extract YX_EXT1, Redo Thread 1, SCN 2379.2132775890 (10219859973074), Redo  Seq #5688, Redo RBA 195997712. 可以通过下面的命令寻找更详细的信息: 示例9-26: GGSCI> send extract x

又一批长事务,P0故障谁来背锅?

最近几周,发生过多起因为事务问题引起的服务报错.现象为数据库连接池连接占满,数据库连接长时间等待,最终导致请求线程hang住,服务大面积报错.这个时候,服务资源.数据库资源大量空闲,但就是进行不下去,影响是比较恶劣的. 谁来背锅?当然是架构师.因为这次所有的服务都活着,没运维什么事. 面试时,大家可能都会碰到关于事务相关的问题,升级版的可能是分布式事务的问题.在互联网行业中,一句马马虎虎的补偿事务就能蒙混过关,毕竟都是些短小精悍的接口. 但在很多企业级应用中,这行不通.我们必须直面惨淡的现实.

检查长事务

输入文件 mon_tx.sql cap_tx.sql 输出文件 输入参数: db_name,minutes 输出参数: 流程序:if .for if [ $# -ne 2 ]; then echo "Not Enough Parameters" else DBNAME=$1 TX_MAX=$2 fi export ROOT_DIR=/home/oracle export SCRIPT_DIR=$ROOT_DIR/utility/macro export LOGFILE_DIR=$ROO

ogg:Extract 进程遇长事务执行 Forcestop 引发的惨案

http://www.linuxidc.com/Linux/2015-04/115777.htm SQL> select t.addr,t.START_DATE from v$transaction t; ADDR START_DAT ---------------- --------- 0000000136AED710 14-JUL-17 SQL> select t.PREV_SQL_ID from v$session t where taddr='0000000136AED710'; PR

(十五)PL/SQL事务

数据库事务是一个工作的原子单元,其可以由一个或多个相关的SQL语句组成.所谓的原子性就是数据库的修改所带来的构成事务的SQL语句可以集体被提交,即永久到数据库或从数据库中(撤消)回滚.一个成功执行的SQL语句和提交的事务不一样.即使一个SQL语句执行成功,除非包含该语句的事务被提交,但也可以回滚和声明(S)的所有更改可以撤消. 一.开始事务事务都有开始和结束.事务开始时有下列事件之一:  连接到数据库后执行的第一个SQL语句.  在事务完成之后发出每一个新的SQL语句完成. 二.提交事务事务是通

数据库-事务和锁

事务 所谓事务是用户定义的一个数据库操作系列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位.例如在关系数据库中,一个事务可以是一条sql语句.一组sql语句或整个程序. 给个栗子: 小IT在网上购物,其付款过程至少包括以下几步数据库操作: 更新客户所购商品的库存信息: 生成订单并且保存到数据库: 更新用户相关信息,例如购物数量等: 正常情况下,操作顺利进行,最终交易成功,那么与交易相关的所有数据库信息也成功更新.但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存

Spring事务

事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做 ACID 1.原子性(Atomicity)    即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做2.一致性(Consistency)    在事务执行前数据库的数据处于正确的状态,而事务执行完成后数据库的数据还是处于正确的状态,即数据完整性约束没有被破坏    如银行转帐,A转帐给B,必须保证A的钱一定转给B,一定不会出现A的钱转了但B没收到,否则数据库的数据就处于不一致