我正在使用Restlet来实现Web服务.客户端(也使用Restlet)对服务器进行多次连续调用,但在少量调用成功完成后,进一步调用会挂起服务器,显示消息:
信息:停止接受新的连接和事务.考虑增加最大线程数.
我试过了:
getContext().getParameters().add("maxThreads", "200");
Run Code Online (Sandbox Code Playgroud)
但这没有用.在任何情况下,似乎客户端应该能够进行无限数量的呼叫,并且增加maxThreads只会增加限制.看起来我没有释放一些资源或在每次客户电话后断开连接,但我不知道该怎么做.
以下(我可以做的很小)独立程序演示了这个问题.它启动一个简单的服务器,然后客户端多次调用它:
/** You may copy, modify, and re-use this code as you see fit - Jim Irrer */
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.restlet.Application;
import org.restlet.Component;
import org.restlet.Request;
import org.restlet.Response;
import org.restlet.Restlet;
import org.restlet.Server;
import org.restlet.data.MediaType;
import org.restlet.data.Method;
import org.restlet.data.Protocol;
import org.restlet.data.Status;
import org.restlet.representation.InputRepresentation;
import org.restlet.representation.Representation;
import org.restlet.resource.ClientResource;
import org.restlet.resource.Directory;
public class SimpleServerPut extends Component implements Runnable {
private static final int PORT = 8080;
private static int readToByteArray(InputStream inputStream, byte[] buf) …Run Code Online (Sandbox Code Playgroud) 我想编写我的Scala + Slick应用程序,以便用户可以在不必修改源代码的情况下为表配置其他列.有没有办法做到这一点?
亚当S - 是的,这就是我的想法.该程序将带有一个默认配置文件,最终用户/管理员可以选择将新列添加到某些表中,当程序启动时,它将添加这些列.
我还有其他一些考虑的方法,例如使用用户将配置的备用列配置初始表(但这会限制备件数量并预先定义类型).另一种方法是定义第二个表与原始主键具有相同的主键,并使其仅包含用户定义的数据,然后程序必须处理维护两个表(每个表具有相同的数量)行),这将允许更传统地处理原始默认表.这两个表可能与数据库函数保持同步(这将使其特定于数据库).