草庐IT

cassandra-jdbc

全部标签

java - 获得 Cassandra Writes 背压的最佳方法是什么?

我有一项服务以我控制的速率从队列中消耗消息。我做了一些处理,然后尝试通过DatastaxJava客户端写入Cassandra集群。我已经使用maxRequestsPerConnection和maxConnectionsPerHost设置了我的Cassandra集群。但是,在测试中我发现,当我达到maxConnectionsPerHost和maxRequestsPerConnection时,对session.executeAsync的调用不会阻塞。我现在正在做的是使用newSemaphore(maxConnectionsPerHost*maxRequestsPerConnection)并

java - JDBC/OSGi 以及如何动态加载驱动程序而无需在包中明确声明依赖关系?

这是一个大问题。我有一个结构良好但单一的代码库,它有一个原始的模块化架构(所有模块实现接口(interface)但共享相同的类路径)。当我在应用程序服务器上进行部署时,我意识到这种方法的愚蠢以及它所代表的问题,这些应用程序服务器可能具有我的库的不同冲突版本。我现在依赖大约30个jar,并且正在中途将它们捆绑在一起。现在我的一些模块很容易声明版本化的依赖关系,比如我的网络组件。它们在JRE和其他BNDded库中静态引用类,但我的JDBC相关组件通过Class.forName(...)实例化,并且可以使用任意数量的驱动程序之一。我正在按服务区域将所有内容分解为OSGi包。我的核心类/接口(

java - 使用 spring jdbc oracle 设置 session 时区

我有一个spring/jdbc/oracle10g应用程序。Oracle服务器数据库时区设置为GMT+2JVM时区为GMT+2(尽管在我的情况下这无关紧要)。我有一个执行一些日期操作的存储过程。问题是session时区与数据库时区不同(格林威治标准时间),即使我没有在我的代码/配置中显式设置session时区。据我所知,session时区默认等于数据库时区。知道为什么session时区与数据库时区不同,或者我如何在spring配置(org.apache.commons.dbcp.BasicDataSource)中配置它?谢谢。 最佳答案

java - jTDS JDBC 驱动程序 : getNString() throws error

我正在使用jtDSJDBC驱动程序,当我调用ResultSet.getNString(index);时,出现以下异常:run:Exceptioninthread"main"java.lang.AbstractMethodError:net.sourceforge.jtds.jdbc.JtdsResultSet.getNString(I)Ljava/lang/String;atjavasql.ProductsController.PrePopulate(ProductsController.java:51)atjavasql.ProductsController.(ProductsCon

java - 通过 JDBC 将 DDL 与 SELECT 混合时为 "ERROR: cached plan must not change result type"

我在通过JDBC使用PostgreSQL时遇到了一个有趣的问题(无法在JDBC之外重现),我得到了一个“ERROR:cachedplanmustnotchangeresulttype”重现此问题的最简单方法是使用以下代码:Connectionc=getConnection();c.setAutoCommit(true);Liststatements=Arrays.asList("createtablet(aint)","select*fromt","altertabletaddbint","select*fromt","altertabletaddcint","select*fromt

java - 用 hector 更快地计算 cassandra 行中的总列数

我想使用Hector计算Cassandra行的总列数客户。目前我正在使用CountQuery执行此操作,但对我来说它似乎真的很慢。同样对于一行,只有60k列需要将近2秒。我的代码目前看起来像这样:QueryResultqr=HFactory.createCountQuery(ksp,se,se).setColumnFamily("ColumnFamily1").setKey("RowKey").setRange(null,null,1000000000).execute();PS:我必须将范围设置到这么高的数字,否则它只会算我最大。到我在范围内提供的数字。有什么改进方法吗?

java - Cassandra 中的键空间模式导入和导出

我在我的系统上安装了Cassandra1.1.2作为单节点集群,并具有三个键空间:hotel、student和employee.如果可能,我想转储hotel的键空间模式及其列族数据,并在其他Cassandra集群上恢复转储。谁能详细建议我该怎么做? 最佳答案 您可以使用sstable2json和json2sstablecassandra工具查看Datastaxdocumentation同样和this也是Usage:sstable2json[-foutfile][-kkey[-kkey[...]]]Usage:json2sstable

java - 组织.hibernate.MappingException : No Dialect mapping for JDBC type: 1111

InitialSessionFactorycreationfailed.org.hibernate.MappingException:NoDialectmappingforJDBCtype:111127Dec,20126:38:34PMorg.apache.catalina.core.StandardWrapperValveinvokeSEVERE:Servlet.service()forservletcommissionthrewexceptionorg.hibernate.MappingException:NoDialectmappingforJDBCtype:1111atorg.

java - 无法使用 Maven 导入 o​​rg.springframework.jdbc.core

我不知道为什么在我的项目中找不到以下导入:代码:importorg.springframework.jdbc.core.SqlInOutParameter;importorg.springframework.jdbc.core.SqlParameter;importorg.springframework.jdbc.object.StoredProcedure;我的pom.xml文件中有以下内容代码:org.springframeworkspring-context3.2.1.RELEASE但我发现,如果我添加以下内容,它会起作用,但我不明白为什么我需要这样做:org.springfra

java - 通过JDBC向PostgreSQL表中插入 "daterange"字段值

我在PostgreSQL(9.3)中有一张表daterange字段类型。我可以像使用JDBC的字符串一样选择这个字段,但我不能将它插入到表中。我尝试过的:PreparedStatementstm=conn.prepareStatement("insertintomytable(my_daterange_field)values(?)");stm.setString(1,"[2014-01-02,2014-01-04]");inti=stm.executeUpdate();我得到了:Exceptioninthread"main"org.postgresql.util.PSQLExcept