当前位置: 首页 > news >正文

如何建网站老鱼网电影网站域名

如何建网站老鱼网,电影网站域名,中国最好的少儿编程培训机构,算命网站开发电话pooled-jms介绍 在这篇文章中#xff0c;我们将揭示一个序列标识符生成器#xff0c;​​它结合了标识符分配效率和与其他外部系统的互操作性#xff08;同时访问底层数据库系统#xff09;。 传统上#xff0c;有两种序列标识符策略可供选择。 序列标识符#xff0c;对… pooled-jms 介绍 在这篇文章中我们将揭示一个序列标识符生成器​​它结合了标识符分配效率和与其他外部系统的互操作性同时访问底层数据库系统。 传统上有两种序列标识符策略可供选择。 序列标识符对于每个新值分配总是命中数据库。 即使使用数据库序列预分配我们也要花费大量的数据库往返费用。 seqhilo标识符使用hi / lo算法。 该生成器在内存中计算一些标识符值因此减少了数据库往返调用。 这种优化技术的问题在于当前的数据库序列值不再反映当前的最高内存生成值。 数据库序列用作存储区编号因此其他系统很难与所讨论的数据库表进行互操作。 其他应用程序必须知道高/低标识符策略的内部工作方式才能正确生成非冲突标识符。 增强的标识符 Hibernate提供了一类新的标识符生成器 解决了原始标识符生成器的许多缺点。 增强的标识符生成器没有固定的标识符分配策略。 优化策略是可配置的我们甚至可以提供自己的优化实现。 默认情况下Hibernate随附以下内置优化器 none 每个标识符都是从数据库中获取的因此等效于原始序列生成器。 hi / lo 它使用hi / lo算法与原始seqhilo生成器等效。 合并的 此优化器使用高/低优化策略但是当前内存中标识符的最高边界是从实际数据库序列值中提取的。 pooled-lo 它类似于池优化器但是数据库序列值用作当前内存中的最低边界 在正式发布公告中 公告了合并的优化器可与其他外部系统进行互操作 即使其他应用程序也在插入值我们也将是绝对安全的因为SEQUENCE本身将处理应用此增量大小。 这实际上是我们正在寻找的东西。 当其他外部系统在同一数据库表中同时插入行时标识符生成器既高效又不会冲突。 测试时间 以下测试将检查新的优化器如何与其他外部数据库表插入配合使用。 在我们的例子中外部系统将是在同一数据库表/序列上的一些本机JDBC插入语句。 doInTransaction(new TransactionCallableVoid() {Overridepublic Void execute(Session session) {for (int i 0; i 8; i) {session.persist(newEntityInstance());}session.flush();assertEquals(8, ((Number) session.createSQLQuery(SELECT COUNT(*) FROM sequenceIdentifier).uniqueResult()).intValue());insertNewRow(session);insertNewRow(session);insertNewRow(session);assertEquals(11, ((Number) session.createSQLQuery(SELECT COUNT(*) FROM sequenceIdentifier).uniqueResult()).intValue());ListNumber ids session.createSQLQuery(SELECT id FROM sequenceIdentifier).list();for (Number id : ids) {LOGGER.debug(Found id: {}, id);}for (int i 0; i 3; i) {session.persist(newEntityInstance());}session.flush();return null;} });池优化器 我们将首先使用池优化器策略 Entity(name sequenceIdentifier) public static class PooledSequenceIdentifier {IdGenericGenerator(name sequenceGenerator, strategy enhanced-sequence,parameters {org.hibernate.annotations.Parameter(name optimizer, value pooled),org.hibernate.annotations.Parameter(name initial_value, value 1),org.hibernate.annotations.Parameter(name increment_size, value 5)})GeneratedValue(strategy GenerationType.SEQUENCE, generator sequenceGenerator)private Long id; } 运行测试最终会引发以下异常 DEBUG [main]: n.t.d.l.SLF4JQueryLoggingListener - Name: Time:0 Num:1 Query:{[insert into sequenceIdentifier (id) values (?)][9]} DEBUG [main]: n.t.d.l.SLF4JQueryLoggingListener - Name: Time:0 Num:1 Query:{[insert into sequenceIdentifier (id) values (?)][10]} DEBUG [main]: n.t.d.l.SLF4JQueryLoggingListener - Name: Time:0 Num:1 Query:{[insert into sequenceIdentifier (id) values (?)][26]} WARN [main]: o.h.e.j.s.SqlExceptionHelper - SQL Error: -104, SQLState: 23505 ERROR [main]: o.h.e.j.s.SqlExceptionHelper - integrity constraint violation: unique constraint or index violation; SYS_PK_10104 table: SEQUENCEIDENTIFIER ERROR [main]: c.v.h.m.l.i.PooledSequenceIdentifierTest - Pooled optimizer threw org.hibernate.exception.ConstraintViolationException: could not execute statementat org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:72) ~[hibernate-core-4.3.5.Final.jar:4.3.5.Final] Caused by: java.sql.SQLIntegrityConstraintViolationException: integrity constraint violation: unique constraint or index violation; SYS_PK_10104 table: SEQUENCEIDENTIFIERat org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) ~[hsqldb-2.3.2.jar:2.3.2] 我不确定这是错误还是仅是设计限制但是合并的优化器不满足互操作性要求。 为了可视化发生的情况我在下图中总结了序列调用 当池优化器检索当前序列值时它将使用它来计算最低的内存边界。 最小值是实际的先前序列值并且其他外部INSERT语句可能已经使用了该值。 Pool-lo优化器 幸运的是还有另外一个要测试的优化器参考文档中未提及。 pool-lo优化器使用当前数据库序列值作为最低的内存边界因此其他系统可以自由使用下一个序列值而不会冒标识符冲突的风险 Entity(name sequenceIdentifier) public static class PooledLoSequenceIdentifier {IdGenericGenerator(name sequenceGenerator, strategy enhanced-sequence,parameters {org.hibernate.annotations.Parameter(name optimizer,value pooled-lo),org.hibernate.annotations.Parameter(name initial_value, value 1),org.hibernate.annotations.Parameter(name increment_size, value 5)})GeneratedValue(strategy GenerationType.SEQUENCE, generator sequenceGenerator)private Long id; } 为了更好地了解此优化器的内部工作原理下图总结了标识符分配过程 结论 隐藏的宝石是大多数人甚至都不知道其存在的巨大功能之一。 pool-lo优化器非常有用但是大多数人甚至都不知道它的存在。 代码可在GitHub上获得 。 翻译自: https://www.javacodegeeks.com/2014/07/hibernate-hidden-gem-the-pooled-lo-optimizer.htmlpooled-jms
http://www.pierceye.com/news/108262/

相关文章:

  • 从零学做网站古典 网站模板
  • h5网站模板开发网站后台哪些功能需要前端配合
  • 网站建设 宜宾佛山企业网站自助建站
  • 苏宁易购网站建设 的定位手机网站制作招聘
  • 个人网站备案申请360老是提示危险网站
  • 建网站哪个好 优帮云自己怎么注册域名
  • 做3ds磁铁卡网站大连旅顺博物馆
  • 邢台市住房和城乡建设局网站大连网站推广机构
  • 网站建设开标书房地产网页设计
  • 中国建设建设工程造价管理协会网站建设视频网站要求吗
  • 商务网站教程深圳定制纸箱
  • 湖南手机版建站系统哪家好自己做网站地图
  • 天津网站制作报价阿里云需要网站建设方案书
  • 做最好的美食分享网站网站建设客户需求分析
  • 如何重建网站广州市服务好的网站制作排名
  • 做一名优秀网站设计师计划网站描述怎样写
  • 网页二级网站怎么做网监关闭的网站怎么恢复
  • 甘肃省建设监理协会 官方网站国内知名公关公司
  • 如何将网站和域名绑定阿里云1M做网站
  • 南城网站建设公司咨询东莞智通人才网最新招聘
  • app建设网站公司哪家好php网站修改代码
  • 哪些网上订餐的网站做的好地情网站建设
  • 重庆推广网站的方法国内最近的新闻大事
  • 网站需要备案吗网站怎么推广软文
  • 做设计开哪个素材网站的会员好手机免费网站建设哪家公司好
  • 征婚网站认识的男人做定投保做高级电工题的网站
  • 学做饼干的网站汕头建设学校的网站
  • asp.net做网站原理工资卡app下载
  • 做齐鲁油官方网站集团网站建设报价
  • 网站的收录情况怎么查企业网银怎么登录