关于CacheLookup一个有趣的问题
今天写一个与其他系统进行物料同步的接口,通过COM Business Connector调用Axapta3.0的方法将数据插入到物料表中,中间发生异常,事务回滚,再次调用的时候提示刚刚发生异常的物料已经存在了,但是查看InventTable表却又看不到这条记录,用select查询却可以查询到这条记录。
应该是物料缓存导致的,重启AOS异常消失。
InventTable表的CacheLookup属性为Found,只要在数据库中查询到的记录就缓存到AOS中,下次查询只要AOS中存在就不再查询数据库,这个逻辑很清晰,但是遇到事物回滚就比较麻烦,类似于下列代码:
static void CacheLookupTest(Args _args)
{
InventTable inventTable,inventTableCheck,inventTableSelect;
;
ttsbegin; inventTableCheck = InventTable::find("CacheLookupTest");
if(!inventTableCheck.RecId)
{
inventTable.ItemId = "CacheLookupTest";
inventTable.insert();
}
inventTableSelect = InventTable::find("CacheLookupTest"); ttsabort;
}
第一次运行查询inventTableCheck时,数据库里没有CacheLookupTest记录,所以正常插入,然后inventTableSelect查询,按照Found的逻辑,现在已经有这个物料了那么理应缓存到AOS中,但是由于接下来是ttsabort将事物回滚而不是提交,执行完以后数据库是里是不会出现CacheLookupTest这个物料的,那么AOS里的缓存是有那还是没有?
测试的答案是Axapta3.0在这种情况下会缓存这个物料,AX2009不会缓存这个物料,显然AX2009的逻辑是正常的。
由于Axapta3.0版本众多,不确定具体哪个版本会有这个问题,也或者只有我这个环境有这个问题,总归是个好玩的东西,记录下来备查。
关于CacheLookup一个有趣的问题的更多相关文章
- 【小贴士】关于transitionEnd/animate的一个有趣故事
前言 在很久之前,我们项目有一个动画功能,功能本身很简单,便是典型的右进左出,并且带动画功能 以当时来说,虽然很简单,但是受限于框架本身的难度,就直接使用了CSS3的方式完成了功能 当时主要使用tra ...
- 一个有趣的SQL Server 层级汇总数据问题
看SQL Server大V宋大侠的博客文章,发现了一个有趣的sql server层级汇总数据问题. 具体的问题如下: parent_id emp_id emp_nam ...
- 一个有趣的模拟光照的shader
一个有趣的模拟光照的shader(类似法线贴图) http://www.cnblogs.com/flytrace/p/3395911.html ----- 可否用于需UI中需要加灯的模型.
- 一个有趣的 SQL 查询(查询7天连续登陆)
一个有趣的 SQL 查询 一个朋友有这样一个SQL查询需求: 有一个登录表(tmp_test),包含用户ID(uid)和登录时间(login_time).表结构如下: . row ********** ...
- 另一个有趣的Captcha 网站
今天在一个网站注册时又发现了一个有趣的Captcha形式.给你一个翻转的图片,然后让你拽下面的slide bar让它回到正常的位置,很有趣.下面是提供这个Captcha的网站. minteye – s ...
- dubbo debug过程中一个有趣的问题
最近在debug dubbo代码过程中遇到的很有趣的问题 我们都知道dubbo ReferenceBean是消费者的spring bean包装,为了查一个consumer端的问题,在Reference ...
- 一个有趣的小例子,带你入门协程模块-asyncio
一个有趣的小例子,带你入门协程模块-asyncio 上篇文章写了关于yield from的用法,简单的了解异步模式,[https://www.cnblogs.com/c-x-a/p/10106031. ...
- 一个有趣的js隐式转换的问题
一个有趣的js隐式转换的问题 在chrome的控制台中打印一下表达式 [] + {} //结果为 [object object] 然后调整顺序打印 {} + [] //结果为 0 然后将两个表达式组合 ...
- 举一个有趣的例子,让你轻松搞懂JVM内存管理
目录 前言 例子 源码 输出 图解 深入分析 学以致用 写在最后 前言 在JAVA虚拟机内存管理中,堆.栈.方法区.常量池等概念经常被提到,对理论知识的理解也常常停留在字面意思上,比如说堆内存中存放对 ...
随机推荐
- C# 获取MAC地址
/********************************************************************** * C# 获取MAC地址 * 说明: * 在C#中获取本 ...
- 诺基亚XL中Intent.ACTION_VIEW无效的问题
今天测试播放视频的时候,发现在诺基亚XL机型里不能弹出视频应用列表. 我的代码是: Intent intent = new Intent(Intent.ACTION_VIEW); intent.set ...
- BlackJack Strategy
GAME SPEC: 2-deck, 104 cards total. Bellagio has 2-deck and 6-deck games. based on hard 17, dealer h ...
- java取整和java四舍五入方法 转自董俊杰
import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetInt{ public static ...
- codeforces 199a
link:http://codeforces.com/contest/342/problem/A 恩恩,读错题了.人家是at most 7,我理解成了at lease 7.好欢乐~ #include ...
- 《C与指针》第二章练习
本章问题 1.Comments in C do not nest(嵌套).What would be the result of "commenting out" the code ...
- JavaScript对象属性赋值操作的逻辑
对象进行属性赋值操作时,其执行逻辑如下所示: 1. 当前对象中是否有该属性?有,进行赋值操作:没有,进行下一步判断. 2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值:有,进行下 ...
- @proprety数组字典字符串用copy和strong区别(深浅拷贝)
//// @proprety数组字典字符串用copy和strong区别(深浅拷贝).h// IOS笔记//// /* _proprety________copy_strong_________h ...
- 论文笔记之:Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement Learning ICML 2016 Best Paper 摘要:本文的贡献点主要是在 DQN ...
- ES TIPS
1,Testing Analyzers Especially when you are new to Elasticsearch, it is sometimes difficult to under ...