小编Meg*_*can的帖子

NHibernate - CreateCriteria与CreateAlias

假设以下情形:

class Project{
   public Job Job;
}

class Job{
   public Name;
}
Run Code Online (Sandbox Code Playgroud)

假设我想使用Criteria API来搜索Job的名称为"sumthing"的所有项目.

我可以使用CreateAlias为Job创建别名并使用它来访问Name,或者我可以为属性Job创建一个新Criteria并按Name搜索.

表现明智,有什么区别吗?

nhibernate performance criteria icriteria

27
推荐指数
3
解决办法
3万
查看次数

在同一个线程中多次锁定互斥锁

我正在开发嵌入式Linux操作系统(uClinux)上的应用程序,我需要能够多次锁定互斥锁(通过相同的线程).

我有一个mutex和一个mutexattr定义和初始化如下:

pthread_mutexattr_t waiting_barcode_mutexattr;
pthread_mutex_t waiting_barcode_mutex;

pthread_mutexattr_init(&waiting_barcode_mutexattr);
pthread_mutexattr_settype(&waiting_barcode_mutexattr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&waiting_barcode_mutex, &waiting_barcode_mutexattr);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试获取锁定两次时它会阻塞第二个锁:

pthread_mutex_lock(&waiting_barcode_mutex);
pthread_mutex_lock(&waiting_barcode_mutex);
Run Code Online (Sandbox Code Playgroud)

我错误地初始化它还是有更好的方法来实现它?

提前致谢.

结论:

  • 显然PTHREAD_MUTEX_RECURSIVE或PTHREAD_MUTEX_RECURSIVE_NP不起作用,因此我无法创建可重入的互斥锁.
  • try_lock也不好.如果可以,它获取锁定,如果无法获取锁定则返回错误.不幸的是,错误只是告诉我互斥锁已经在使用中,我不知道当前线程是否已经拥有锁.
  • 如果当前线程有锁,pthread_mutex_lock可以返回错误,但为此我需要创建一个PTHREAD_MUTEX_ERRORCHECK类型的互斥锁,我也不能创建一个.

c linux posix uclinux embedded-linux

10
推荐指数
2
解决办法
3万
查看次数

SqlPlus没有终止sql脚本

我有一个包含以下脚本的文件:

BEGIN
    ...
    a bunch of inserts
    ...
    COMMIT;

EXCEPTION
    WHEN OTHERS THEN ROLLBACK;
END;
Run Code Online (Sandbox Code Playgroud)

当我在sqlplus中执行此操作时,我得到以下内容:

SQL> @file.sql
382
Run Code Online (Sandbox Code Playgroud)

好像他没有结束这个街区.我是新手使用pl/sql和sqlplus,所以我不知道我做错了什么.

有任何想法吗?

plsql sqlplus

6
推荐指数
1
解决办法
8304
查看次数

使用SSL和WCF进行自托管 - 无法将证书绑定到端口

我有一个WCF服务,我想使用SSL访问.我在我的开发者机器上,所以我在考虑自我托管服务.我一直在关注配置HTTP和HTTPS.

我创建了一个自签名证书,我将其添加到受信任的根证书颁发机构.我创建了另外两个由第一个签名的证书,一个用于客户端,另一个用于服务器.我跟着使用makecert创建开发证书.

我无法通过SSL证书配置步骤.当我使用netsh将证书绑定到端口号时,它会引发SSL错误:

证书添加失败,错误:1312指定的登录会话不存在.它可能已经被终止了.

证书是否需要一些特殊领域或其他一些工作?

CA证书:

makecert -n "CN=TestCA" -cy authority -a sha1 -sv "TestCA.pvk" -r "TEST_CA.cer"
Run Code Online (Sandbox Code Playgroud)

服务证书:

makecert -n "CN=rneapp.com" -ic "TEST_CA.cer"  -iv "TestCA.pvk" -a sha1 -sky exchange -pe -sv "rneapp.com.pvk" "rneapp.com.cer"
Run Code Online (Sandbox Code Playgroud)

客户证书:

makecert -n "CN=rneClient" -ic "TEST_CA.cer"  -iv "TestCA.pvk" -a sha1 -sky exchange -pe -sv "rneClient.pvk" "rneClient.cer"
Run Code Online (Sandbox Code Playgroud)

我正在使用此命令将证书绑定到端口:

netsh http add sslcert ipport=0.0.0.0:8465 certhash=a853f3b5b48b8a506bdc4212ba2726a3bfea2bb6 appid={2E53B9B0-17AE-4EBC-A1AE-43D53A6FD07D} clientcertnegotiation=enable
Run Code Online (Sandbox Code Playgroud)

ssl wcf

4
推荐指数
1
解决办法
6342
查看次数

从WCF服务返回NHibernate映射类

我有一个处理数据库访问的服务器和一个消耗信息的客户端.从客户端到服务器的通信是通过WCF服务.

从服务返回NHibernate POCO时,对象图中的所有对象是否已序列化?如果是这样,有没有办法改变它?

我也在考虑不返回NHibernate POCO而是返回一个只包含基本信息的对象.

你在这些案件中做了什么?

nhibernate wcf

3
推荐指数
1
解决办法
2000
查看次数

更改静态数组

我在文件中声明了一个静态变量:

static char *msgToUser[] = {
    "MSG1                ", 
    "MSG2                ",
};
Run Code Online (Sandbox Code Playgroud)

在我正在做的一个类的方法之一:

void InfoUser::ModifyMsg( BYTE msgIdx, char *msgString ){
    strncpy( msgToUser[ idx ], msgString, DISPLAY_SIZE );
}
Run Code Online (Sandbox Code Playgroud)

当我执行strncopy时,程序崩溃了.我不确定我做错了什么

c linux arrays segmentation-fault strncpy

3
推荐指数
1
解决办法
1518
查看次数