我正在使用C++ ofstream写出一个文件.我想将权限设置为只能由用户访问:700.在unix中; 我想我可以发一个system("chmod 700 file.txt");但我需要这个代码才能在Windows上运行.我可以使用一些Windows API; 但是最好的c ++跨平台方法是什么?
所以我在WinForms应用程序中托管WCF服务.我有以下内容
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple,
InstanceContextMode = InstanceContextMode.PerCall)]
public class Test : ITest
{
public string TestIt(string input)
{
Thread.Sleep(5000);
return "test";
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用命名管道,并有两个另一个应用程序的实例作为上述WCF服务的客户端(在WinForms应用程序中运行).我认为基于Multiple的ConcurrencyMode设置,当Client1调用Test Service时,Client2不必等到第一个调用完成.但是,当Client1调用TestIt时,Client2会阻塞,直到来自Client1的调用完成!?!?!根据上述设置,它不应每次都创建一个新实例吗?
另外,保持托管WCF服务响应的WinForms应用程序的最佳方法是在单独的线程上运行WCF服务吗?
注意:在Test类上设置[CallbackBehavior(UseSynchronizationContext = false)]不会缓解此问题.该服务仍然一次只响应一个请求.
我在这做错了什么?我错过了什么?
- (void)scheduleTimer
{
NSTimer *timer = [NSTimer timerWithTimeInterval:0.15
target:self
selector:@selector(wtf:)
userInfo:nil
repeats:NO];
// This works fine
// [[NSRunLoop currentRunLoop] addTimer:timer
// forMode:NSDefaultRunLoopMode];
// This doesn't work at all - how come?
[[NSRunLoop currentRunLoop] addTimer:timer
forMode:@"MyCustomRunLoopMode"];
}
- (void)wtf:(NSTimer *)aTimer
{
NSLog(@"wtf");
}
Run Code Online (Sandbox Code Playgroud)
NSRunLoop的文档似乎表明可以创建自定义的runloop模式.我错过了什么吗?
(这是Mac OS X中标准GUI应用程序的主线程)
更新:请注意,我提到这是在标准应用程序的主线程上.因此,我自己并没有运行runloop.这一切都由NSApplication处理.
查询:
SELECT tbl1.*
FROM tbl1
JOIN tbl2
ON (tbl1.t1_pk = tbl2.t2_fk_t1_pk
AND tbl2.t2_strt_dt <= sysdate
AND tbl2.t2_end_dt >= sysdate)
JOIN tbl3 on (tbl3.t3_pk = tbl2.t2_fk_t3_pk
AND tbl3.t3_lkup_1 = 2577304
AND tbl3.t3_lkup_2 = 1220833)
where tbl2.t2_lkup_1 = 1020000002981587;
Run Code Online (Sandbox Code Playgroud)
事实:
在tbl1中对11,000行和tbl2中的3500行的数据库进行解释计划表明它正在对tbl1进行全表扫描.在我看来,如果它可以在tbl1上进行索引查询,它应该更快.
在tbl1中对11,000行和tbl2中的3500行的数据库进行解释计划表明它正在对tbl1进行全表扫描.在我看来,如果它可以在tbl1上进行索引查询,它应该更快.
更新:我尝试了一些你建议的提示,解释成本变得更糟!现在我真的很困惑.
进一步更新:我终于可以访问生产数据库的副本,"解释计划"使用索引和低成本查询显示它.我想有更多的数据(在tbl1中超过100,000行,在tbl2中有50,000行)是让它决定索引是值得的.感谢所有帮助过的人.我仍然认为Oracle性能调优是一种黑色艺术,但我很高兴你们中的一些人理解它.
进一步更新:我已根据前雇主的要求更新了问题.他们不喜欢在谷歌查询中显示他们的表名.我应该知道的更好.
我正在建立一个数据库,我有兴趣拥有一个类似Facebook的朋友系统.我最初的计划是有这样一张桌子:
uid friends
4 30,23,12,33
30 54,92,108
Run Code Online (Sandbox Code Playgroud)
所有这些数字都是带有用户信息的表格的FK.我被告知这是不可取的,实际上是不可能的,因为MySQL只会处理好FK,如果他们是单元格中唯一放置的那个.也许是这样的?
uid(PK) friend
4 30
4 23
4 12
30 54
30 92
30 108
Run Code Online (Sandbox Code Playgroud)
等.这不会给我留下大量的行吗?(成千上万?)第一种技术在时间和效率方面不值得吗?
我有两个系统,我正在尝试整合.一个是基于原始servlet构建的,新的一个是使用IceFaces构建在JSF上的.我正在尝试促进跨系统登录.我的想法是,我在旧系统中有一个按钮,它将适当的信息发布到新站点并将其记录下来.
好吧,理想情况下,我只想使用一个普通的旧servlet在新网站上使用它.转到新站点的Servlet,执行它需要做的事情并转发到仪表板上.
我们的安全性通过托管bean处理.但是,当你到达Servlet时,没有面部上下文.那么,我将如何创建一个新的面部上下文?
我有一个备份计划,我可以随时链接到一个虚拟的.iface页面,它将为我创建FacesContext,然后创建一个支持bean,当它获得实例化然后转发到主页面时将执行操作.但这感觉非常像黑客.
任何帮助,将不胜感激!
编辑:我采取了备份的方式.基本上,我发布到这样的页面:
<f:view>
<ice:outputText value="#{EntryPoint}"/>
</f:view
Run Code Online (Sandbox Code Playgroud)
支持豆看起来像......
public EntryPoint() {
try {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
String loginID = request.getParameter("loginID");
//Do some code to load the user/permissions
response.sendRedirect(
//The appropriate page
);
} catch (IOException ex) {
logger.error(null, ex);
} catch (SQLException ex) {
logger.error(null, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
这仍然感觉像是一个黑客,但我不知道如何解决这个问题.理想情况下,我将POST发送到servlet,获取loginID,构建用户并将其直接放入托管bean.但是,FacesContext在那时并不存在.
还有其他想法吗?
我正在使用ADO.NET实体框架创建一个应用程序.
我可以在调试时逐行浏览我的代码,并为每个执行的查询观察SQL Server Profiler,但我无法弄清楚所有这些SQL命令的来源!
有时当我执行时SaveChanges(),实体框架执行意外的,奇怪的INSERTS.他们有时会破坏申请.我无法弄清楚我正在做些什么来引起他们.
如何监视排队等待SaveChanges()呼叫的挂起更改?
我有一个.net mvc应用程序,其控制器操作接受用户注册帖子.我有以下UI字段:emailaddress,firstname,lastname,password和confirmpassword.其中一些字段不属于模型对象(即确认密码不属于用户模型,仅属于密码).我的注册表位于与登录表单相同的视图中.所以我必须在同一个视图上使用独立的表单,每个表单都返回不同的操作.
我想我可以为表单元素分配前缀,以分隔寄存器和登录之间的相似字段.我遇到的问题是验证,如果发生错误,视图被重新加载,显示验证消息,但是像电子邮件(存在于登录和注册中)这样的字段都会填充先前输入的地址.另外,我在登录和注册字段上面都有一个验证摘要.注册期间发生错误时,将使用错误消息填充两个验证摘要.我认为为字段分配前缀(register.fieldname和login.fieldname)可能有助于解决这些问题.
因此,当register操作处理post时,它不再找到注册表单字段的值,而是返回null.以下是此操作使用的方法签名...
关于这里发生的事情的任何输入都会很棒.
谢谢杰里米
public ActionResult Register([Bind(Prefix = "Register")] string emailAddress, [Bind(Prefix = "Register")] string firstName, [Bind(Prefix = "Register")] string LastName, [Bind(Prefix = "Register")] string password, [Bind(Prefix = "Register")] string confirmPassword)
Run Code Online (Sandbox Code Playgroud)
以下是我的ui,它代表注册表格....
<h2>Create a New Account</h2>
<p>
Use the form below to create a new account.
</p>
<p>
Passwords are required to be a minimum of <%=Html.Encode(ViewData["PasswordLength"])%> characters in length.
</p>
<%= Html.ValidationSummary() %>
<% using (Html.BeginForm("register", "account")) { %>
<div>
<fieldset>
<legend>Account Information</legend>
<table>
<tr>
<td><label for="EmailAddress">Email …Run Code Online (Sandbox Code Playgroud) 我有一个Java应用程序,它使用一些本机代码,这是错误的.我想搞清楚在那里它的断层,但我不知道如何读hs_err_pid转储文件:
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x256cbc]
V [libjvm.so+0x25df69]
V [libjvm.so+0x25dbac]
V [libjvm.so+0x25e8c8]
V [libjvm.so+0x25e49f]
V [libjvm.so+0x16fa3e]
j br.com.cip.spb.single.SPBRequestApplicationController.processJob(Lcom/planet/core360/docgen/ProcessingEnvironment;Lcom/planet/core360/dsmv2/processing/ApplicationDataJob;)V+158
j com.planet.core360.cgen.CgenProcessor.processJob(Ljava/lang/String;Lcom/planet/core360/docgen/ProcessingEnvironment;Lcom/planet/core360/dsmv2/processing/ApplicationDataJob;)V+108
j com.planet.core360.cgen.CgenProcessor.processJob(Ljava/lang/String;Lcom/planet/core360/docgen/ProcessingEnvironment;Lcom/planet/core360/dsmv2/processing/ScheduledJob;)V+7
v ~StubRoutines::call_stub
V [libjvm.so+0x17af0c]
V [libjvm.so+0x28b9d8]
V [libjvm.so+0x17ad3f]
V [libjvm.so+0x1a58a3]
V [libjvm.so+0x18bc24]
C [cgen+0xa6d6]
C [cgen+0xae1e] cgen_process_job+0x336
C [cgen+0x10442]
C [cgen+0x7714]
C [cgen+0x38216]
C [cgen+0x3a29d]
C [cgen+0x37e3c]
C [cgen+0x7558]
C [libc.so.6+0x166e5] __libc_start_main+0xe5
Run Code Online (Sandbox Code Playgroud)
基本上,指向的'j'帧是什么?是V+158指类中的字节码偏移量?我怎样才能追溯到这里的源线?
实际上,我喜欢这种垃圾桶的一般指南.那太棒了.
替代文字http://agricam.net/test.gif
我需要在市场营销人数改变之后在SQL中动态添加一行,其中标题为"Marketer Total",只应添加"Total"列.例如,在Marketer 22行的最后一行之后,应该有"Marketer Total",然后在Total列下面应该是1804.同样应该在Marketer 500的最后一行之后发生.
请参见http://agricam.net/test.gif上的图片
当前查询:
从SomeTable中选择Marketer,SubMarketer,Grade,Total,Convert(varchar,Date,101)[Date],其中Date> ='2/25/2009'和Date <'2/26/2009'和Marketer in('22' ,'500')分组由SubMarketer,Grade,Marketer,Date,总订单由Marketer提供
谢谢.