diff --git a/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java b/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java
index 2c8984c70f..56cb8a40a5 100644
--- a/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java
+++ b/WaarpCommon/src/main/java/org/waarp/common/utility/WaarpNettyUtil.java
@@ -22,6 +22,7 @@
import io.netty.bootstrap.Bootstrap;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.PooledByteBufAllocator;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
@@ -251,4 +252,23 @@ public static ByteBuf slice(final ByteBuf byteBuf, final int start,
bufSliced.writerIndex(0);
return bufSliced;
}
+
+ /**
+ * Replace the arrays with one Pooled ByteBuf (not wrapped)
+ *
+ * @param arrays
+ *
+ * @return the ByteBuf from pool
+ */
+ public static ByteBuf wrappedBuffer(byte[]... arrays) {
+ int size = 0;
+ for (byte[] array : arrays) {
+ size += array.length;
+ }
+ final ByteBuf finalByteBuf = ByteBufAllocator.DEFAULT.buffer(size);
+ for (byte[] array : arrays) {
+ finalByteBuf.writeBytes(array);
+ }
+ return finalByteBuf;
+ }
}
diff --git a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java
index 7c33f41af4..540e415ac1 100644
--- a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java
+++ b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/ServerActions.java
@@ -1264,7 +1264,8 @@ private void shutdownLocalChannel() {
if (time == 0) {
logger.info("Will close networkChannel {}", ncr.nbLocalChannels());
NetworkTransaction.shuttingDownNetworkChannel(ncr);
- NetworkTransaction.shuttingdownNetworkChannelsPerHostID(ncr.getHostId());
+ NetworkTransaction
+ .shuttingdownNetworkChannelsPerHostID(ncr.getHostId());
}
} finally {
ncr.unlockNetwork();
diff --git a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java
index 7e0aabbc95..64494f7c54 100644
--- a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java
+++ b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/DataPacket.java
@@ -21,7 +21,6 @@
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
-import io.netty.buffer.Unpooled;
import org.waarp.common.digest.FilesystemBasedDigest;
import org.waarp.common.logging.WaarpLogger;
import org.waarp.common.logging.WaarpLoggerFactory;
@@ -123,7 +122,7 @@ public void createAllBuffers(final LocalChannelReference lcr,
@Override
public void createEnd(final LocalChannelReference lcr) {
- end = Unpooled.wrappedBuffer(key);
+ end = WaarpNettyUtil.wrappedBuffer(key);
}
@Override
@@ -137,7 +136,7 @@ public void createMiddle(final LocalChannelReference lcr) {
if (dataRecv != null) {
middle = dataRecv;
} else {
- middle = Unpooled.wrappedBuffer(data);
+ middle = WaarpNettyUtil.wrappedBuffer(data);
}
}
diff --git a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java
index a1d74b83ff..ee6837d5d2 100644
--- a/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java
+++ b/WaarpR66/src/main/java/org/waarp/openr66/protocol/localhandler/packet/RequestPacket.java
@@ -21,10 +21,11 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
import org.waarp.common.json.JsonHandler;
import org.waarp.common.logging.WaarpLogger;
import org.waarp.common.logging.WaarpLoggerFactory;
+import org.waarp.common.utility.WaarpNettyUtil;
+import org.waarp.common.utility.WaarpStringUtils;
import org.waarp.openr66.context.ErrorCode;
import org.waarp.openr66.protocol.configuration.Configuration;
import org.waarp.openr66.protocol.configuration.PartnerConfiguration;
@@ -365,7 +366,8 @@ public void createAllBuffers(final LocalChannelReference lcr,
@Override
public void createEnd(final LocalChannelReference lcr) {
if (transferInformation != null) {
- end = Unpooled.wrappedBuffer(transferInformation.getBytes());
+ end = WaarpNettyUtil
+ .wrappedBuffer(transferInformation.getBytes(WaarpStringUtils.UTF8));
}
}
@@ -380,13 +382,13 @@ public void createHeader(final LocalChannelReference lcr)
final ObjectNode node = JsonHandler.createObjectNode();
JsonHandler.setValue(node, FIELDS.rule, rulename);
JsonHandler.setValue(node, FIELDS.mode, mode);
- header =
- Unpooled.wrappedBuffer(JsonHandler.writeAsString(node).getBytes());
+ header = WaarpNettyUtil.wrappedBuffer(
+ JsonHandler.writeAsString(node).getBytes(WaarpStringUtils.UTF8));
} else {
- header = Unpooled.wrappedBuffer(rulename.getBytes(),
- PartnerConfiguration.BLANK_SEPARATOR_FIELD
- .getBytes(),
- Integer.toString(mode).getBytes());
+ header = WaarpNettyUtil.wrappedBuffer(rulename.getBytes(),
+ PartnerConfiguration.BLANK_SEPARATOR_FIELD
+ .getBytes(),
+ Integer.toString(mode).getBytes());
}
}
@@ -408,11 +410,14 @@ public void createMiddle(final LocalChannelReference lcr)
JsonHandler.setValue(node, FIELDS.length, originalSize);
// Add limit if specified
JsonHandler.setValue(node, FIELDS.limit, limit);
- middle = Unpooled
- .wrappedBuffer(away, JsonHandler.writeAsString(node).getBytes());
+ middle = WaarpNettyUtil.wrappedBuffer(away,
+ JsonHandler.writeAsString(node)
+ .getBytes(
+ WaarpStringUtils.UTF8));
} else {
- middle = Unpooled
- .wrappedBuffer(away, filename.getBytes(), separator.getBytes(),
+ middle = WaarpNettyUtil
+ .wrappedBuffer(away, filename.getBytes(WaarpStringUtils.UTF8),
+ separator.getBytes(),
Integer.toString(blocksize).getBytes(),
separator.getBytes(),
Integer.toString(rank).getBytes(),
diff --git a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java
index cd02a8e333..3c11870078 100644
--- a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java
+++ b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoop.java
@@ -323,16 +323,49 @@ public static int startServer(String serverConfig) throws Exception {
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
+ if (NUMBER_FILES == -1) {
+ Configuration.configuration.setTimeoutCon(100);
+ WaarpLoggerFactory.setLogLevel(WaarpLogLevel.ERROR);
+ for (int pid : PIDS) {
+ Processes.kill(pid, true);
+ }
+ tearDownAfterClassClient();
+ tearDownAfterClassMinimal();
+ tearDownAfterClassServer();
+ return;
+ }
CloseableHttpClient httpClient = null;
+ int max = SystemPropertyUtil.get(IT_LONG_TEST, false)? 60 : 20;
+ if (max < NUMBER_FILES) {
+ max = NUMBER_FILES * 3;
+ }
+ int totalTransfers = max;
+ int nb = 0;
+ int every10sec = 10;
+ HttpGet request =
+ new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=100000");
+ final long startTime = System.currentTimeMillis();
try {
httpClient = HttpClientBuilder.create().setConnectionManagerShared(true)
.disableAutomaticRetries().build();
- HttpGet request =
- new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=1000");
CloseableHttpResponse response = null;
- int nb = 0;
- int every10sec = 10;
- int max = SystemPropertyUtil.get(IT_LONG_TEST, false)? 60 : 20;
+ try {
+ response = httpClient.execute(request);
+ assertEquals(200, response.getStatusLine().getStatusCode());
+ String content = EntityUtils.toString(response.getEntity());
+ ObjectNode node = JsonHandler.getFromString(content);
+ if (node != null) {
+ JsonNode number = node.findValue("totalResults");
+ int newNb = number.asInt();
+ max += newNb;
+ totalTransfers = max;
+ logger.warn("Found {} transfers", newNb);
+ }
+ } finally {
+ if (response != null) {
+ response.close();
+ }
+ }
while (nb < max) {
try {
response = httpClient.execute(request);
@@ -363,7 +396,12 @@ public static void tearDownAfterClass() throws Exception {
httpClient.close();
}
}
+ final long stopTime = System.currentTimeMillis();
+ totalTransfers -= nb;
+ logger.warn("Duration {} for {} item so {} items/s", (stopTime - startTime) / 1000.0, totalTransfers,
+ totalTransfers / ((stopTime - startTime) / 1000.0));
Configuration.configuration.setTimeoutCon(100);
+ WaarpLoggerFactory.setLogLevel(WaarpLogLevel.ERROR);
for (int pid : PIDS) {
Processes.kill(pid, true);
}
@@ -388,7 +426,7 @@ private void checkMemory() {
Runtime runtime = Runtime.getRuntime();
long newUsedMemory = runtime.totalMemory() - runtime.freeMemory();
if (newUsedMemory > MAX_USED_MEMORY) {
- logger.warn("Used Memory > 2GB {} {}", usedMemory / 1048576.0,
+ logger.info("Used Memory > 2GB {} {}", usedMemory / 1048576.0,
newUsedMemory / 1048576.0);
}
}
@@ -472,6 +510,11 @@ private void testBigTransfer(boolean limit, String serverName, boolean direct,
@Test
public void test01_LoopBigSendsSyncNoLimit()
throws IOException, InterruptedException {
+ if (SystemPropertyUtil.get(IT_LONG_TEST, false)) {
+ NUMBER_FILES = 4;
+ } else {
+ NUMBER_FILES = 2;
+ }
logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES);
testBigTransfer(false, "server2", true, false, 1024 * 500 * 1024);
testBigTransfer(false, "server2", true, false, 1024 * 1024 * 1024);
@@ -485,6 +528,11 @@ public void test01_LoopBigSendsSyncNoLimit()
@Test
public void test02_LoopBigSendsSyncSslNoLimit()
throws IOException, InterruptedException {
+ if (SystemPropertyUtil.get(IT_LONG_TEST, false)) {
+ NUMBER_FILES = 2;
+ } else {
+ NUMBER_FILES = 1;
+ }
logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES);
testBigTransfer(false, "server2-ssl", true, false, 1024 * 501 * 1024);
if (SystemPropertyUtil.get(IT_LONG_TEST, false)) {
@@ -493,6 +541,123 @@ public void test02_LoopBigSendsSyncSslNoLimit()
logger.warn("End {}", Processes.getCurrentMethodName());
}
+ @Test
+ public void test03_LoopBigSendsSyncSslNoLimit()
+ throws IOException, InterruptedException {
+ if (SystemPropertyUtil.get(IT_LONG_TEST, false)) {
+ NUMBER_FILES = 700;
+ } else {
+ NUMBER_FILES = -1;
+ logger.warn("Test disabled without IT_LONG_TEST");
+ Assume.assumeTrue("If the Long term tests are allowed",
+ SystemPropertyUtil.get(IT_LONG_TEST, false));
+ return;
+ }
+ logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES);
+ int limit = 700;
+ int middleSize = 360 - (limit / 2);
+
+ Assume.assumeNotNull(networkTransaction);
+ Configuration.configuration.changeNetworkLimit(0, 0, 0, 0, 1000);
+ File baseDir = new File("/tmp/R66/scenario_big_file_limitbdw/R1/out/");
+ for (int i = 0; i < limit; i++) {
+ int size = (middleSize + i) * 1024;
+ File fileOut = new File(baseDir, "hello" + size);
+ final File outHello = generateOutFile(fileOut.getAbsolutePath(), size);
+ }
+ logger.warn("End of file creations");
+ long timestart = System.currentTimeMillis();
+ R66Future[] futures = new R66Future[limit];
+ for (int i = 0; i < limit; i++) {
+ int size = (middleSize + i) * 1024;
+ final R66Future future = new R66Future(true);
+ futures[i] = future;
+ final TestTransferNoDb transaction =
+ new TestTransferNoDb(future, "server2-ssl", "hello" + size, "loop",
+ "Test Loop Send", true, BLOCK_SIZE,
+ DbConstantR66.ILLEGALVALUE,
+ networkTransaction);
+ transaction.setNormalInfoAsWarn(false);
+ transaction.run();
+ }
+ for (int i = 0; i < limit; i++) {
+ futures[i].awaitOrInterruptible();
+ assertTrue(futures[i].isSuccess());
+ }
+ //logger.info("Runner: {}", future.getRunner());
+ long timestop = System.currentTimeMillis();
+ logger.warn("Direct {}, Recv {}, LimitBandwidth {} " +
+ "({} seconds, {} MBPS vs {} " +
+ "and {}) of size {} with block size {}", true, false, limit,
+ (timestop - timestart) / 1000,
+ limit * 180*1024 / 1000.0 / (timestop - timestart),
+ Configuration.configuration.getServerGlobalReadLimit() /
+ 1000000.0,
+ Configuration.configuration.getServerChannelReadLimit() /
+ 1000000.0, limit *180*1024, BLOCK_SIZE);
+ checkMemory();
+ logger.warn("End {}", Processes.getCurrentMethodName());
+ }
+
+
+ @Test
+ public void test04_LoopBigSendsSyncNoLimit()
+ throws IOException, InterruptedException {
+ if (SystemPropertyUtil.get(IT_LONG_TEST, false)) {
+ NUMBER_FILES = 700;
+ } else {
+ NUMBER_FILES = -1;
+ logger.warn("Test disabled without IT_LONG_TEST");
+ Assume.assumeTrue("If the Long term tests are allowed",
+ SystemPropertyUtil.get(IT_LONG_TEST, false));
+ return;
+ }
+ logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES);
+ int limit = 700;
+ int middleSize = 360 - (limit / 2);
+
+ Assume.assumeNotNull(networkTransaction);
+ Configuration.configuration.changeNetworkLimit(0, 0, 0, 0, 1000);
+ File baseDir = new File("/tmp/R66/scenario_big_file_limitbdw/R1/out/");
+ for (int i = 0; i < limit; i++) {
+ int size = (middleSize + i) * 1024;
+ File fileOut = new File(baseDir, "hello" + size);
+ final File outHello = generateOutFile(fileOut.getAbsolutePath(), size);
+ }
+ logger.warn("End of file creations");
+ long timestart = System.currentTimeMillis();
+ R66Future[] futures = new R66Future[limit];
+ for (int i = 0; i < limit; i++) {
+ int size = (middleSize + i) * 1024;
+ final R66Future future = new R66Future(true);
+ futures[i] = future;
+ final TestTransferNoDb transaction =
+ new TestTransferNoDb(future, "server2", "hello" + size, "loop",
+ "Test Loop Send", true, BLOCK_SIZE,
+ DbConstantR66.ILLEGALVALUE,
+ networkTransaction);
+ transaction.setNormalInfoAsWarn(false);
+ transaction.run();
+ }
+ for (int i = 0; i < limit; i++) {
+ futures[i].awaitOrInterruptible();
+ assertTrue(futures[i].isSuccess());
+ }
+ //logger.info("Runner: {}", future.getRunner());
+ long timestop = System.currentTimeMillis();
+ logger.warn("Direct {}, Recv {}, LimitBandwidth {} " +
+ "({} seconds, {} MBPS vs {} " +
+ "and {}) of size {} with block size {}", true, false, limit,
+ (timestop - timestart) / 1000,
+ limit * 180*1024 / 1000.0 / (timestop - timestart),
+ Configuration.configuration.getServerGlobalReadLimit() /
+ 1000000.0,
+ Configuration.configuration.getServerChannelReadLimit() /
+ 1000000.0, limit *180*1024, BLOCK_SIZE);
+ checkMemory();
+ logger.warn("End {}", Processes.getCurrentMethodName());
+ }
+
private void waitForAllDone(DbTaskRunner runner) {
while (true) {
try {
diff --git a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java
index 6dcc7c475b..e38108bfcb 100644
--- a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java
+++ b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioBaseLoopBenchmark.java
@@ -30,7 +30,12 @@
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
-import org.junit.*;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.testcontainers.containers.JdbcDatabaseContainer;
import org.waarp.common.command.exception.Reply550Exception;
@@ -61,7 +66,7 @@
import java.util.List;
import static org.junit.Assert.*;
-import static org.waarp.openr66.protocol.it.ScenarioBase.IT_LONG_TEST;
+import static org.waarp.openr66.protocol.it.ScenarioBase.*;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public abstract class ScenarioBaseLoopBenchmark extends TestAbstract {
@@ -92,7 +97,8 @@ public abstract class ScenarioBaseLoopBenchmark extends TestAbstract {
public static void setUpBeforeClass() throws Exception {
ResourceLeakDetector.setLevel(Level.SIMPLE);
- final ClassLoader classLoader = ScenarioBaseLoopBenchmark.class.getClassLoader();
+ final ClassLoader classLoader =
+ ScenarioBaseLoopBenchmark.class.getClassLoader();
File file =
new File(classLoader.getResource(RESOURCES_SERVER_1_XML).getFile());
dirResources = file.getParentFile().getParentFile().getParentFile();
@@ -200,7 +206,8 @@ public String getServerConfigFile() {
public static void setUp3DbBeforeClass() throws Exception {
deleteBase();
- final ClassLoader classLoader = ScenarioBaseLoopBenchmark.class.getClassLoader();
+ final ClassLoader classLoader =
+ ScenarioBaseLoopBenchmark.class.getClassLoader();
DetectionUtils.setJunit(true);
File file =
new File(classLoader.getResource(RESOURCES_SERVER_1_XML).getFile());
@@ -311,9 +318,9 @@ public static void tearDownAfterClass() throws Exception {
final long startTime = System.currentTimeMillis();
try {
httpClient = HttpClientBuilder.create().setConnectionManagerShared(true)
- .disableAutomaticRetries().build();
+ .disableAutomaticRetries().build();
HttpGet request =
- new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=100000");
+ new HttpGet("http://127.0.0.1:8098/v2/transfers?limit=100000");
CloseableHttpResponse response = null;
try {
response = httpClient.execute(request);
@@ -364,8 +371,9 @@ public static void tearDownAfterClass() throws Exception {
}
final long stopTime = System.currentTimeMillis();
totalTransfers = nb - totalTransfers;
- logger.warn("Duration {} for {} item so {} items/s", (stopTime - startTime) / 1000.0, totalTransfers,
- totalTransfers / ((stopTime - startTime) / 1000.0));
+ logger.warn("Duration {} for {} item so {} items/s",
+ (stopTime - startTime) / 1000.0, totalTransfers,
+ totalTransfers / ((stopTime - startTime) / 1000.0));
Configuration.configuration.setTimeoutCon(100);
WaarpLoggerFactory.setLogLevel(WaarpLogLevel.ERROR);
for (int pid : PIDS) {
@@ -422,7 +430,7 @@ private void runLoopInit(String ruleName, String serverName, int factor) {
for (int i = 1; i <= NUMBER_FILES; i++) {
int size = i * factor;
final R66Future future = new R66Future(true);
- futures[i-1] = future;
+ futures[i - 1] = future;
/*
final TestTransferNoDb transaction =
new TestTransferNoDb(future, "server2-ssl", "hello" + size, "loop",
@@ -434,9 +442,9 @@ private void runLoopInit(String ruleName, String serverName, int factor) {
*/
final SubmitTransfer transaction =
- new SubmitTransfer(future, serverName, "hello" + size, ruleName,
- "Test Loop Send " + size, true, BLOCK_SIZE,
- DbConstantR66.ILLEGALVALUE, null);
+ new SubmitTransfer(future, serverName, "hello" + size, ruleName,
+ "Test Loop Send " + size, true, BLOCK_SIZE,
+ DbConstantR66.ILLEGALVALUE, null);
TransferArgs.forceAnalyzeFollow(transaction);
transaction.setNormalInfoAsWarn(false);
transaction.run();
@@ -449,7 +457,7 @@ private void runLoopInit(String ruleName, String serverName, int factor) {
@Test
public void test01_LoopBenchmarkSendsSyncSslNoLimit()
- throws IOException, InterruptedException {
+ throws IOException, InterruptedException {
logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES);
int factor = initBenchmark();
String serverName = "server2-ssl";
@@ -458,21 +466,22 @@ public void test01_LoopBenchmarkSendsSyncSslNoLimit()
runLoopInit(ruleName, serverName, factor);
long timestop = System.currentTimeMillis();
logger.warn("Direct {}, Recv {}, LimitBandwidth {} " +
- "({} seconds, {} MBPS vs {} " +
- "and {}) of size {} with block size {}", true, false, NUMBER_FILES,
- (timestop - timestart) / 1000,
- NUMBER_FILES * (factor * (NUMBER_FILES / 2)) / 1000.0 / (timestop - timestart),
- Configuration.configuration.getServerGlobalReadLimit() /
- 1000000.0,
- Configuration.configuration.getServerChannelReadLimit() /
- 1000000.0, (factor * (NUMBER_FILES / 2)), BLOCK_SIZE);
+ "({} seconds, {} MBPS vs {} " +
+ "and {}) of size {} with block size {}", true, false,
+ NUMBER_FILES, (timestop - timestart) / 1000,
+ NUMBER_FILES * (factor * (NUMBER_FILES / 2)) / 1000.0 /
+ (timestop - timestart),
+ Configuration.configuration.getServerGlobalReadLimit() /
+ 1000000.0,
+ Configuration.configuration.getServerChannelReadLimit() /
+ 1000000.0, (factor * (NUMBER_FILES / 2)), BLOCK_SIZE);
checkMemory();
logger.warn("End {}", Processes.getCurrentMethodName());
}
@Test
public void test02_LoopBenchmarkSendsSyncNoLimit()
- throws IOException, InterruptedException {
+ throws IOException, InterruptedException {
logger.warn("Start {} {}", Processes.getCurrentMethodName(), NUMBER_FILES);
int factor = initBenchmark();
String serverName = "server2";
@@ -481,14 +490,15 @@ public void test02_LoopBenchmarkSendsSyncNoLimit()
runLoopInit(ruleName, serverName, factor);
long timestop = System.currentTimeMillis();
logger.warn("Direct {}, Recv {}, LimitBandwidth {} " +
- "({} seconds, {} MBPS vs {} " +
- "and {}) of size {} with block size {}", true, false, NUMBER_FILES,
- (timestop - timestart) / 1000,
- NUMBER_FILES * (factor + (NUMBER_FILES / 2)) / 1000.0 / (timestop - timestart),
- Configuration.configuration.getServerGlobalReadLimit() /
- 1000000.0,
- Configuration.configuration.getServerChannelReadLimit() /
- 1000000.0, (factor + (NUMBER_FILES / 2)), BLOCK_SIZE);
+ "({} seconds, {} MBPS vs {} " +
+ "and {}) of size {} with block size {}", true, false,
+ NUMBER_FILES, (timestop - timestart) / 1000,
+ NUMBER_FILES * (factor + (NUMBER_FILES / 2)) / 1000.0 /
+ (timestop - timestart),
+ Configuration.configuration.getServerGlobalReadLimit() /
+ 1000000.0,
+ Configuration.configuration.getServerChannelReadLimit() /
+ 1000000.0, (factor + (NUMBER_FILES / 2)), BLOCK_SIZE);
checkMemory();
logger.warn("End {}", Processes.getCurrentMethodName());
}
diff --git a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java
index 54fb803f8d..4ee51848f1 100644
--- a/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java
+++ b/WaarpR66/src/test/java/org/waarp/openr66/protocol/it/ScenarioLoopBenchmarkPostGreSqlIT.java
@@ -34,7 +34,8 @@
import java.util.Map;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class ScenarioLoopBenchmarkPostGreSqlIT extends ScenarioBaseLoopBenchmark {
+public class ScenarioLoopBenchmarkPostGreSqlIT
+ extends ScenarioBaseLoopBenchmark {
@Rule(order = Integer.MIN_VALUE)
public TestWatcher watchman = new TestWatcherJunit4();
diff --git a/doc/waarp-r66/source/changes.rst b/doc/waarp-r66/source/changes.rst
index f9027e4759..1f2dd4b618 100644
--- a/doc/waarp-r66/source/changes.rst
+++ b/doc/waarp-r66/source/changes.rst
@@ -15,7 +15,8 @@ Correctifs
- Amélioration de la fermeture opportuniste des connexions réseaux
- Amélioration de la liaison JVM/Filesystem lors du test de lisibilité
-- Acroissement de la limite de RUNLIMIT à 10000, maintient du défaut à 1000
+- Accroissement de la limite de RUNLIMIT à 10000, maintient du défaut à 1000
+- Amélioration des performances (usage de ByteBuf natif)
- Fix de la Gateway FTP pour les clients sous Windows qui abusivement envoient
une commande OPTS avant l'authentification
- Mise à jour des dépendances
diff --git a/pom.xml b/pom.xml
index 5c9929a6fe..f923c820bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -267,7 +267,7 @@
test
- 4.1.58.Final
+ 4.1.59.Final
2.0.36.Final
1.0.2
@@ -285,7 +285,7 @@
1.15
1.9.4
1.4
- 42.2.18.jre6
6
1.2.0
@@ -298,21 +298,20 @@
4.5.13
4.4.14
1.7.2
- 2.10.9
+ 2.10.10
1.2.0
- 1.10.19
- 5.6.0
+ 1.10.21
+ 5.7.0
3.1.4
- 4.13.1
+ 4.13.2
1.68
3.19.0
4.2
3.0.2
- 1.15.1
0.4.11
2.14.0
3.141.59
- 2.46.0
+ 2.47.1
2.2.0
@@ -346,7 +345,7 @@
3.0.0-M3
2.8.1
- 1.19
+ 1.20
1.10.9
1.3.4
3.2.4
@@ -354,7 +353,7 @@
2.7
1.2.5
4.2.0
- 4.2.0
+ 4.2.2
2.5.2
@@ -1083,6 +1082,8 @@
version-->
3.3.0
2.28.2
+ 1.14.3
@@ -1217,6 +1218,7 @@
3.27.0-GA
4.3.3
3.5.13
+ 1.15.2
@@ -1348,6 +1350,7 @@
3.27.0-GA
4.3.3
3.5.13
+ 1.15.2