[jira] [Commented] (AMQ-7309) Add JMS 2.0 API support

2022-06-07 Thread Mats Andreassen (Jira)


[ 
https://issues.apache.org/jira/browse/AMQ-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17551411#comment-17551411
 ] 

Mats Andreassen commented on AMQ-7309:
--

I didn't write it in my previous comment but my intention is to move from 
Java11 towards 17. As you probably are well aware, this means that the 
javax.jms package is evicted from the JDK.

In other projects this has been more or less unproblematic but I use both the 
client library and the server library (in integration tests). Maybe I'm 
misunderstanding your suggestion because I don't see how the activemq-client 
code could run when the javax.jms package is missing.



> Add JMS 2.0 API support
> ---
>
> Key: AMQ-7309
> URL: https://issues.apache.org/jira/browse/AMQ-7309
> Project: ActiveMQ
>  Issue Type: New Feature
>  Components: Broker, JMS client
>Reporter: Jean-Baptiste Onofré
>Assignee: Jean-Baptiste Onofré
>Priority: Major
>  Labels: #jms2
> Fix For: 5.18.0
>
>  Time Spent: 17h 20m
>  Remaining Estimate: 0h
>
> * API-only inclusion
> * JMS 2.0 objects throw UnsupportedOperationException



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (AMQCPP-718) Compilation failing for C++17 standard

2022-06-07 Thread Minhaajuddin Ahmad Khan (Jira)
Minhaajuddin Ahmad Khan created AMQCPP-718:
--

 Summary: Compilation failing for C++17 standard
 Key: AMQCPP-718
 URL: https://issues.apache.org/jira/browse/AMQCPP-718
 Project: ActiveMQ C++ Client
  Issue Type: Improvement
  Components: CMS Impl
Affects Versions: 3.9.4
 Environment: Fedora
Reporter: Minhaajuddin Ahmad Khan
Assignee: Timothy A. Bish


Hello,

CMS fails to compile for C++17 standard, error below :

 

/home/minhaaj/bisrte-temp/build/vcpkg_installed/x64-linux/include/activemq/commands/ActiveMQMapMessage.h:70:34:
 error: ISO C++17 does not allow dynamic exception specifications
   70 |         virtual void clearBody() throw (cms::CMSException);
      |                                  ^

 

Could you please make changes for the new standard.

 

Regards

Minhaaj



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (ARTEMIS-3848) High cpu usage on ReadWrite locks

2022-06-07 Thread Clebert Suconic (Jira)


[ 
https://issues.apache.org/jira/browse/ARTEMIS-3848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17551367#comment-17551367
 ] 

Clebert Suconic commented on ARTEMIS-3848:
--

Some information on how to reproduce this issue if anyone intends to do it:

Here is a way to reproduce this issue:

clone my github sandbox project (I just created it).

with the old version of the broker, create a broker:

no need to auto-tune, the test will not send messages
./artemis create my-broker --no-autotune
start the broker:

cd my-broker/bin
./artemis run

clone a project I just created for this:

git clone https://github.com/clebertsuconic/sandbox
cd sandbox/session-stress
./build.sh
java -jar target/session-stress-0.2.SNAPSHOT-jar-with-dependencies.jar

find the broker process with jps:

jmap -dump:dump.hprof 

and inspect the generated hprof using Eclipse Memory Analyzer tool (MAT).

Do the following OQL:

select * from org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1

and watch the retained HEAPs. for the large objects, inspect the threadLocal 
variable on each one of these threads.

with the fix in place you should have just a handful of elements.

> High cpu usage on ReadWrite locks
> -
>
> Key: ARTEMIS-3848
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3848
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> our HandlerBase is setting a boolean value if it's in handler.
> I thought by setting it to null I was clearing the ThreadLocal variable, 
> however that's just creating a null entry.
> What makes it worst is the fact that threadLocal was non static. as a result 
> we are getting a lot of entries on the ThreadLocal HashMap. as connections 
> come and go, that will generate a leak on the thread.
> That will cause threads on the following stack trace to consume a lot of CPU:
> at 
> java.lang.ThreadLocal$ThreadLocalMap.expungeStaleEntry(ThreadLocal.java:638)
> at java.lang.ThreadLocal$ThreadLocalMap.remove(ThreadLocal.java:520)
> at 
> java.lang.ThreadLocal$ThreadLocalMap.access$200(ThreadLocal.java:319)
> at java.lang.ThreadLocal.remove(ThreadLocal.java:242)
> at 
> java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:426)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1341)
> at 
> java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:881)



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779268&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779268
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 22:18
Start Date: 07/Jun/22 22:18
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891754596


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/deployers/impl/FileConfigurationParser.java:
##
@@ -1261,6 +1265,14 @@ protected Pair 
parseAddressSettings(final Node node) {
 long pageSizeLong = 
ByteUtil.convertTextBytes(getTrimmedTextContent(child));
 Validators.POSITIVE_INT.validate(PAGE_SIZE_BYTES_NODE_NAME, 
pageSizeLong);
 addressSettings.setPageSizeBytes((int) pageSizeLong);
+ }  else if (MAX_READ_PAGE_MESSAGES_NODE_NAME.equalsIgnoreCase(name)) {
+long maxReadPageMessages = 
Long.parseLong(getTrimmedTextContent(child));
+Validators.POSITIVE_INT.validate(PAGE_SIZE_BYTES_NODE_NAME, 
maxReadPageMessages);
+addressSettings.setMaxReadPageMessages((int)maxReadPageMessages);
+ }  else if (MAX_READ_PAGE_BYTES_NODE_NAME.equalsIgnoreCase(name)) {
+long maxReadPageBytes = 
ByteUtil.convertTextBytes(getTrimmedTextContent(child));
+Validators.POSITIVE_INT.validate(PAGE_SIZE_BYTES_NODE_NAME, 
maxReadPageBytes);

Review Comment:
   wow... you're good man! thanks!





Issue Time Tracking
---

Worklog Id: (was: 779268)
Time Spent: 3h 20m  (was: 3h 10m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 3h 20m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779267&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779267
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 22:10
Start Date: 07/Jun/22 22:10
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891750604


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/Page.java:
##
@@ -17,57 +17,80 @@
 package org.apache.activemq.artemis.core.paging.impl;
 
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Consumer;
 
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
 import org.apache.activemq.artemis.api.core.SimpleString;
-import org.apache.activemq.artemis.core.buffers.impl.ChannelBufferWrapper;
+import org.apache.activemq.artemis.core.io.IOCallback;
 import org.apache.activemq.artemis.core.io.SequentialFile;
 import org.apache.activemq.artemis.core.io.SequentialFileFactory;
 import org.apache.activemq.artemis.core.paging.PagedMessage;
-import org.apache.activemq.artemis.core.paging.cursor.LivePageCache;
 import org.apache.activemq.artemis.core.paging.cursor.PageSubscriptionCounter;
 import org.apache.activemq.artemis.core.persistence.StorageManager;
 import org.apache.activemq.artemis.core.server.ActiveMQMessageBundle;
 import org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
 import org.apache.activemq.artemis.core.server.LargeServerMessage;
-import org.apache.activemq.artemis.utils.DataConstants;
-import org.apache.activemq.artemis.utils.Env;
+import org.apache.activemq.artemis.utils.ReferenceCounterUtil;
 import org.apache.activemq.artemis.utils.collections.ConcurrentHashSet;
+import org.apache.activemq.artemis.utils.collections.EmptyList;
+import org.apache.activemq.artemis.utils.collections.LinkedList;
+import org.apache.activemq.artemis.utils.collections.LinkedListImpl;
+import org.apache.activemq.artemis.utils.collections.LinkedListIterator;
 import org.jboss.logging.Logger;
 
 public final class Page implements Comparable {
 
+   private static final AtomicInteger factory = new AtomicInteger(0);
+
+   private final int seqInt = factory.incrementAndGet();
+
private static final Logger logger = Logger.getLogger(Page.class);
 
-   public static final int SIZE_RECORD = DataConstants.SIZE_BYTE + 
DataConstants.SIZE_INT + DataConstants.SIZE_BYTE;
+   private final ReferenceCounterUtil referenceCounter = new 
ReferenceCounterUtil();
 
-   private static final byte START_BYTE = (byte) '{';
+   public void usageReset() {
+  referenceCounter.reset();
+   }
 
-   private static final byte END_BYTE = (byte) '}';
+   public int usageUp() {
+  return referenceCounter.increment();
+   }
+
+   public int usageDown() {
+  return referenceCounter.decrement();
+   }
 
 
-   private final int pageId;
+   /** This is an utility method to help you call usageDown while using a try 
(closeable) call.
+*  */

Review Comment:
   I am removing the method





Issue Time Tracking
---

Worklog Id: (was: 779267)
Time Spent: 3h 10m  (was: 3h)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779261&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779261
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:59
Start Date: 07/Jun/22 20:59
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891704311


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageSubscriptionImpl.java:
##
@@ -1444,20 +1276,39 @@ public List 
getRelatedMessageReferences() {
 
private class CursorIterator implements PageIterator {
 
-  private PagePositionAndFileOffset position = null;
+  // The cursorLogger is declared as static on the class, just to avoid a 
getLogger() call every time
+  private final Logger logger = cursorLogger;

Review Comment:
   I would get this compilation error if I declared it static final:
   ```
   Static declarations in inner classes are not supported at language level '11'
   ```
   
   I wanted to use a different logger for the inner class...
   
   
   but I will now just use the top logger, it's for tracing only anyways





Issue Time Tracking
---

Worklog Id: (was: 779261)
Time Spent: 3h  (was: 2h 50m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 3h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779259&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779259
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:58
Start Date: 07/Jun/22 20:58
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891704311


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageSubscriptionImpl.java:
##
@@ -1444,20 +1276,39 @@ public List 
getRelatedMessageReferences() {
 
private class CursorIterator implements PageIterator {
 
-  private PagePositionAndFileOffset position = null;
+  // The cursorLogger is declared as static on the class, just to avoid a 
getLogger() call every time
+  private final Logger logger = cursorLogger;

Review Comment:
   I would get this compilation error if I declared it static final:
   
   Static declarations in inner classes are not supported at language level '11'
   
   
   I wanted to use a different logger for the inner class...
   
   
   but I will now just use the top logger, it's for tracing only anyways





Issue Time Tracking
---

Worklog Id: (was: 779259)
Time Spent: 2h 50m  (was: 2h 40m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 2h 50m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779252&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779252
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:32
Start Date: 07/Jun/22 20:32
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891684103


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java:
##
@@ -207,8 +208,8 @@ private void checkIDSupplier(NodeStore 
nodeStore) {
// The quantity of pagedReferences on messageReferences priority list
private final AtomicInteger pagedReferences = new AtomicInteger(0);
 
-   // The estimate of memory being consumed by this queue. Used to calculate 
instances of messages to depage
-   final AtomicInteger queueMemorySize = new AtomicInteger(0);
+
+   final SizeAwareMetric queueMemorySize = new SizeAwareMetric();

Review Comment:
   @gemmellr I preferred to use the SizeAwareMetric here instead of introducing 
a new counter.





Issue Time Tracking
---

Worklog Id: (was: 779252)
Time Spent: 2h 40m  (was: 2.5h)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779249&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779249
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:26
Start Date: 07/Jun/22 20:26
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891678995


##
docs/user-manual/en/paging.md:
##
@@ -96,12 +96,20 @@ Property Name|Description|Default
 `max-size-messages`|The max number of messages the address could have before 
entering on page mode.| -1 (disabled)
 `page-size-bytes`|The size of each page file used on the paging system|10MB
 `address-full-policy`|This must be set to `PAGE` for paging to enable. If the 
value is `PAGE` then further messages will be paged to disk. If the value is 
`DROP` then further messages will be silently dropped. If the value is `FAIL` 
then the messages will be dropped and the client message producers will receive 
an exception. If the value is `BLOCK` then client message producers will block 
when they try and send further messages.|`PAGE`
-`page-max-cache-size`|The system will keep up to `page-max-cache-size` page 
files in memory to optimize IO during paging navigation.|5
+`max-read-page-messages` | how many message can be read from paging into the 
Queue whenever more messages are needed. The system wtill stop reading if 
`max-read-page-bytes hits the limit first.
+`max-read-page-bytes` | how much memory the messages read from paging can take 
on the Queue whenever more messages are needed. The system will stop reading if 
`max-read-page-messages` hits the limit first.
+`page-max-cache-size`|Deprecated and not used: `max-read-page-messages` and 
`max-read-page-bytes` will replace this functionality.

Review Comment:
   Not currently.. no... It's a good idea.. I will log a message.





Issue Time Tracking
---

Worklog Id: (was: 779249)
Time Spent: 2.5h  (was: 2h 20m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779248&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779248
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:25
Start Date: 07/Jun/22 20:25
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891678350


##
artemis-server/src/test/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageCursorProviderAccessor.java:
##
@@ -5,20 +5,23 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 

Review Comment:
   I'm not sure what weird setting on my IDE cause these changes... will fix 
it.. thanks





Issue Time Tracking
---

Worklog Id: (was: 779248)
Time Spent: 2h 20m  (was: 2h 10m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 2h 20m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779244&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779244
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:16
Start Date: 07/Jun/22 20:16
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891671137


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/ReplicationPageEventMessage.java:
##
@@ -54,7 +54,7 @@ public int expectedEncodeSize() {
@Override
public void encodeRest(final ActiveMQBuffer buffer) {
   buffer.writeSimpleString(storeName);
-  buffer.writeInt(pageNumber);
+  buffer.writeInt((int)pageNumber);

Review Comment:
   sh***t I forgot about this...
   
   
   I will need some versioning work here.
   
   Thanks...





Issue Time Tracking
---

Worklog Id: (was: 779244)
Time Spent: 2h 10m  (was: 2h)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 2h 10m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779243&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779243
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:15
Start Date: 07/Jun/22 20:15
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891670677


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/Page.java:
##
@@ -543,77 +283,110 @@ public boolean delete(final PagedMessage[] messages) 
throws Exception {
  logger.debugf("Deleting pageNr=%d on store %s", pageId, storeName);
   }
 
-  final List largeMessageIds;
-  if (messages != null && messages.length > 0) {
- largeMessageIds = new ArrayList<>();
- for (PagedMessage msg : messages) {
-if ((msg.getMessage()).isLargeMessage()) {
-   // this will trigger large message delete: no need to do it
-   // for non-large messages!
-   msg.getMessage().usageDown();
-   largeMessageIds.add(msg.getMessage().getMessageID());
+  if (messages != null) {
+ try (LinkedListIterator iter = messages.iterator()) {
+while (iter.hasNext()) {
+   PagedMessage msg = iter.next();
+   if ((msg.getMessage()).isLargeMessage()) {
+  ((LargeServerMessage)(msg.getMessage())).deleteFile();
+  msg.getMessage().usageDown();
+   }
 }
  }
-  } else {
- largeMessageIds = Collections.emptyList();
   }
 
-  try {
- if (!storageManager.waitOnOperations(5000)) {
-
ActiveMQServerLogger.LOGGER.timedOutWaitingForLargeMessagesDeletion(largeMessageIds);
+  storageManager.afterCompleteOperations(new IOCallback() {
+ @Override
+ public void done() {
+try {
+   if (suspiciousRecords) {
+  ActiveMQServerLogger.LOGGER.pageInvalid(file.getFileName(), 
file.getFileName());
+  file.renameTo(file.getFileName() + ".invalidPage");
+   } else {
+  file.delete();
+   }
+   referenceCounter.reset();
+} catch (Exception e) {
+   ActiveMQServerLogger.LOGGER.pageDeleteError(e);
+}
  }
- if (suspiciousRecords) {
-ActiveMQServerLogger.LOGGER.pageInvalid(file.getFileName(), 
file.getFileName());
-file.renameTo(file.getFileName() + ".invalidPage");
- } else {
-file.delete();
+
+ @Override
+ public void onError(int errorCode, String errorMessage) {
+
  }
+  });
 
- return true;
-  } catch (Exception e) {
- ActiveMQServerLogger.LOGGER.pageDeleteError(e);
- return false;
+  return true;
+   }
+
+   public int readNumberOfMessages() throws Exception {
+  boolean wasOpen = isOpen();
+
+  if (!wasOpen) {
+ if (!open(false)) {
+return 0;
+ }
+  }
+
+  try {
+ int numberOfMessages = 
PageReadWriter.readFromSequentialFile(this.storageManager,
+  
this.storeName,
+  
this.fileFactory,
+  
this.file,
+  
this.pageId,
+  null,
+  
PageReadWriter.SKIP_ALL,
+  null,
+  null);
+ if (logger.isDebugEnabled()) {
+logger.debug(">>> Reading numberOfMessages page " + this.pageId + 
", returning " + numberOfMessages);
+ }
+ return numberOfMessages;
+  } finally {
+ if (!wasOpen) {
+close(false);
+ }
   }
}
 
public int getNumberOfMessages() {
-  return numberOfMessages.intValue();
+  return numberOfMessages;
}
 
public int getSize() {
-  return size.intValue();
+  return size;
}
 
-   @Override
-   public String toString() {
-  return "Page::pageNr=" + this.pageId + ", file=" + this.file;
+   private void setSize(int size) {
+  this.size = size;
}
 
@Override
-   public int compareTo(Page otherPage) {
-  return otherPage.getPageId() - this.pageId;
+   public String toString() {
+  return "Page::seqCreation=" + seqInt + ", pageNr=" + this.pageId + ", 
file=" +

[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779241&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779241
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 20:14
Start Date: 07/Jun/22 20:14
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891670139


##
artemis-commons/src/main/java/org/apache/activemq/artemis/utils/SizeAwareMetric.java:
##
@@ -59,6 +59,13 @@ public interface AddCallback {
 
private Runnable underCallback;
 
+   /** To be used in a case where we just measure elements */
+   public SizeAwareMetric() {
+  this.sizeEnabled = false;
+  this.elementsEnabled = false;
+   }

Review Comment:
   I will keep the SizeAwareMetric here.





Issue Time Tracking
---

Worklog Id: (was: 779241)
Time Spent: 1h 50m  (was: 1h 40m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 1h 50m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779220&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779220
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 19:29
Start Date: 07/Jun/22 19:29
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891633938


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/Page.java:
##
@@ -543,77 +283,110 @@ public boolean delete(final PagedMessage[] messages) 
throws Exception {
  logger.debugf("Deleting pageNr=%d on store %s", pageId, storeName);
   }
 
-  final List largeMessageIds;
-  if (messages != null && messages.length > 0) {
- largeMessageIds = new ArrayList<>();
- for (PagedMessage msg : messages) {
-if ((msg.getMessage()).isLargeMessage()) {
-   // this will trigger large message delete: no need to do it
-   // for non-large messages!
-   msg.getMessage().usageDown();
-   largeMessageIds.add(msg.getMessage().getMessageID());
+  if (messages != null) {
+ try (LinkedListIterator iter = messages.iterator()) {
+while (iter.hasNext()) {
+   PagedMessage msg = iter.next();
+   if ((msg.getMessage()).isLargeMessage()) {
+  ((LargeServerMessage)(msg.getMessage())).deleteFile();
+  msg.getMessage().usageDown();
+   }
 }
  }
-  } else {
- largeMessageIds = Collections.emptyList();
   }
 
-  try {
- if (!storageManager.waitOnOperations(5000)) {
-
ActiveMQServerLogger.LOGGER.timedOutWaitingForLargeMessagesDeletion(largeMessageIds);
+  storageManager.afterCompleteOperations(new IOCallback() {
+ @Override
+ public void done() {
+try {
+   if (suspiciousRecords) {
+  ActiveMQServerLogger.LOGGER.pageInvalid(file.getFileName(), 
file.getFileName());
+  file.renameTo(file.getFileName() + ".invalidPage");
+   } else {
+  file.delete();
+   }
+   referenceCounter.reset();
+} catch (Exception e) {
+   ActiveMQServerLogger.LOGGER.pageDeleteError(e);
+}
  }
- if (suspiciousRecords) {
-ActiveMQServerLogger.LOGGER.pageInvalid(file.getFileName(), 
file.getFileName());
-file.renameTo(file.getFileName() + ".invalidPage");
- } else {
-file.delete();
+
+ @Override
+ public void onError(int errorCode, String errorMessage) {
+
  }
+  });
 
- return true;
-  } catch (Exception e) {
- ActiveMQServerLogger.LOGGER.pageDeleteError(e);
- return false;
+  return true;
+   }
+
+   public int readNumberOfMessages() throws Exception {
+  boolean wasOpen = isOpen();
+
+  if (!wasOpen) {
+ if (!open(false)) {
+return 0;
+ }
+  }
+
+  try {
+ int numberOfMessages = 
PageReadWriter.readFromSequentialFile(this.storageManager,
+  
this.storeName,
+  
this.fileFactory,
+  
this.file,
+  
this.pageId,
+  null,
+  
PageReadWriter.SKIP_ALL,
+  null,
+  null);
+ if (logger.isDebugEnabled()) {
+logger.debug(">>> Reading numberOfMessages page " + this.pageId + 
", returning " + numberOfMessages);
+ }
+ return numberOfMessages;
+  } finally {
+ if (!wasOpen) {
+close(false);
+ }
   }
}
 
public int getNumberOfMessages() {
-  return numberOfMessages.intValue();
+  return numberOfMessages;
}
 
public int getSize() {
-  return size.intValue();
+  return size;
}
 
-   @Override
-   public String toString() {
-  return "Page::pageNr=" + this.pageId + ", file=" + this.file;
+   private void setSize(int size) {
+  this.size = size;
}
 
@Override
-   public int compareTo(Page otherPage) {
-  return otherPage.getPageId() - this.pageId;
+   public String toString() {
+  return "Page::seqCreation=" + seqInt + ", pageNr=" + this.pageId + ", 
file=" +

[jira] [Work logged] (ARTEMIS-3851) MQTT subscription queues exist after restart despite CleanSession=1

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3851?focusedWorklogId=779190&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779190
 ]

ASF GitHub Bot logged work on ARTEMIS-3851:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 17:01
Start Date: 07/Jun/22 17:01
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on PR #4103:
URL: 
https://github.com/apache/activemq-artemis/pull/4103#issuecomment-1148933232

   @jbertram there's a test failure introduced by this PR:
   
   
org.apache.activemq.artemis.tests.integration.mqtt.PahoMQTTQOS2SecurityTest.testSendAndReceiveMQTT




Issue Time Tracking
---

Worklog Id: (was: 779190)
Time Spent: 20m  (was: 10m)

> MQTT subscription queues exist after restart despite CleanSession=1
> ---
>
> Key: ARTEMIS-3851
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3851
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Justin Bertram
>Assignee: Justin Bertram
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> MQTT subscription queues are not cleaned up if the broker goes down while the 
> consumer is connected.
> To reproduce the issue:
> # Run AMQ broker with standard configuration (addresses and queues are 
> auto-created)
> # Run a MQTT consumer connecting to the target topic with 
> {{CleanSession=true}}. At this point a subscription queue will be created on 
> the address for the MQTT topic.
> # Run a MQTT producer sending messages into the target topic.
> # Since the producer is running, the consumer is receiving the messages.
> # Shutdown AMQ (it can be done gracefully or by killing -9 it).
> # Stop the MQTT producer.
> # Stop the MQTT consumer
> # Start the broker. After it is restarted, the old queue associated to the 
> MQTT consumer is still there and it's not deleted.
> # Run again the MQTT producer. The broker continues enqueuing messages into 
> the old subscription queue.
> # Stop the MQTT producer. The queue stops growing but it's still there with 
> messages inside.
> The MQTT 3.1.1 specification states in [section 
> 3.1.2.4|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718030]:
> bq. If CleanSession is set to 1, the Client and Server MUST discard any 
> previous Session and start a new one. This Session lasts as long as the 
> Network Connection. State data associated with this Session MUST NOT be 
> reused in any subsequent Session [MQTT-3.1.2-6].
> When the broker is stopped the network connection is terminated so the 
> session's state data (including any messages for any subscriptions) should be 
> removed.
> To be clear, this works differently in MQTT 5 where {{CleanSession}} became 
> {{CleanStart}} and session expiry interval was added.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3853) Ping command for IPv6 is wrong on Windows

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3853.

Fix Version/s: 2.23.0
   Resolution: Fixed

> Ping command for IPv6 is wrong on Windows
> -
>
> Key: ARTEMIS-3853
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3853
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Domenico Francesco Bruscino
>Assignee: Domenico Francesco Bruscino
>Priority: Minor
> Fix For: 2.23.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The ping for IPv6 command used is not working properly on Windows, we should 
> be using 'ping -6 -n 1 -w %d %s'.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (ARTEMIS-3853) Ping command for IPv6 is wrong on Windows

2022-06-07 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/ARTEMIS-3853?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17551163#comment-17551163
 ] 

ASF subversion and git services commented on ARTEMIS-3853:
--

Commit 8d27f3e333a346c9dfacc48d40c9fc60f77c4df5 in activemq-artemis's branch 
refs/heads/main from Domenico Francesco Bruscino
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=8d27f3e333 ]

ARTEMIS-3853 Fix default ping command IPv6 for Windows


> Ping command for IPv6 is wrong on Windows
> -
>
> Key: ARTEMIS-3853
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3853
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Domenico Francesco Bruscino
>Assignee: Domenico Francesco Bruscino
>Priority: Minor
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The ping for IPv6 command used is not working properly on Windows, we should 
> be using 'ping -6 -n 1 -w %d %s'.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3853) Ping command for IPv6 is wrong on Windows

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3853?focusedWorklogId=779158&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779158
 ]

ASF GitHub Bot logged work on ARTEMIS-3853:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 15:51
Start Date: 07/Jun/22 15:51
Worklog Time Spent: 10m 
  Work Description: clebertsuconic merged PR #4106:
URL: https://github.com/apache/activemq-artemis/pull/4106




Issue Time Tracking
---

Worklog Id: (was: 779158)
Remaining Estimate: 0h
Time Spent: 10m

> Ping command for IPv6 is wrong on Windows
> -
>
> Key: ARTEMIS-3853
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3853
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Domenico Francesco Bruscino
>Assignee: Domenico Francesco Bruscino
>Priority: Minor
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The ping for IPv6 command used is not working properly on Windows, we should 
> be using 'ping -6 -n 1 -w %d %s'.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (ARTEMIS-3700) Provide JakartaEE 10 artefacts and support

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic updated ARTEMIS-3700:
-
Issue Type: New Feature  (was: Improvement)

> Provide JakartaEE 10 artefacts and support
> --
>
> Key: ARTEMIS-3700
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3700
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>  Components: API
>Affects Versions: 2.20.0
>Reporter: Emmanuel Hugonnet
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> With Jakarta Messaging 3.1 to be released we should plan to provide support 
> of the new set of APIs.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3700) Provide JakartaEE 10 artefacts and support

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3700.

Resolution: Fixed

> Provide JakartaEE 10 artefacts and support
> --
>
> Key: ARTEMIS-3700
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3700
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>  Components: API
>Affects Versions: 2.20.0
>Reporter: Emmanuel Hugonnet
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> With Jakarta Messaging 3.1 to be released we should plan to provide support 
> of the new set of APIs.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Reopened] (ARTEMIS-3700) Provide JakartaEE 10 artefacts and support

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic reopened ARTEMIS-3700:
--

> Provide JakartaEE 10 artefacts and support
> --
>
> Key: ARTEMIS-3700
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3700
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>  Components: API
>Affects Versions: 2.20.0
>Reporter: Emmanuel Hugonnet
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> With Jakarta Messaging 3.1 to be released we should plan to provide support 
> of the new set of APIs.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779139&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779139
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 14:52
Start Date: 07/Jun/22 14:52
Worklog Time Spent: 10m 
  Work Description: gemmellr commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891298940


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/Page.java:
##
@@ -543,77 +283,110 @@ public boolean delete(final PagedMessage[] messages) 
throws Exception {
  logger.debugf("Deleting pageNr=%d on store %s", pageId, storeName);
   }
 
-  final List largeMessageIds;
-  if (messages != null && messages.length > 0) {
- largeMessageIds = new ArrayList<>();
- for (PagedMessage msg : messages) {
-if ((msg.getMessage()).isLargeMessage()) {
-   // this will trigger large message delete: no need to do it
-   // for non-large messages!
-   msg.getMessage().usageDown();
-   largeMessageIds.add(msg.getMessage().getMessageID());
+  if (messages != null) {
+ try (LinkedListIterator iter = messages.iterator()) {
+while (iter.hasNext()) {
+   PagedMessage msg = iter.next();
+   if ((msg.getMessage()).isLargeMessage()) {
+  ((LargeServerMessage)(msg.getMessage())).deleteFile();
+  msg.getMessage().usageDown();
+   }
 }
  }
-  } else {
- largeMessageIds = Collections.emptyList();
   }
 
-  try {
- if (!storageManager.waitOnOperations(5000)) {
-
ActiveMQServerLogger.LOGGER.timedOutWaitingForLargeMessagesDeletion(largeMessageIds);
+  storageManager.afterCompleteOperations(new IOCallback() {
+ @Override
+ public void done() {
+try {
+   if (suspiciousRecords) {
+  ActiveMQServerLogger.LOGGER.pageInvalid(file.getFileName(), 
file.getFileName());
+  file.renameTo(file.getFileName() + ".invalidPage");
+   } else {
+  file.delete();
+   }
+   referenceCounter.reset();
+} catch (Exception e) {
+   ActiveMQServerLogger.LOGGER.pageDeleteError(e);
+}
  }
- if (suspiciousRecords) {
-ActiveMQServerLogger.LOGGER.pageInvalid(file.getFileName(), 
file.getFileName());
-file.renameTo(file.getFileName() + ".invalidPage");
- } else {
-file.delete();
+
+ @Override
+ public void onError(int errorCode, String errorMessage) {
+
  }
+  });
 
- return true;
-  } catch (Exception e) {
- ActiveMQServerLogger.LOGGER.pageDeleteError(e);
- return false;
+  return true;
+   }
+
+   public int readNumberOfMessages() throws Exception {
+  boolean wasOpen = isOpen();
+
+  if (!wasOpen) {
+ if (!open(false)) {
+return 0;
+ }
+  }
+
+  try {
+ int numberOfMessages = 
PageReadWriter.readFromSequentialFile(this.storageManager,
+  
this.storeName,
+  
this.fileFactory,
+  
this.file,
+  
this.pageId,
+  null,
+  
PageReadWriter.SKIP_ALL,
+  null,
+  null);
+ if (logger.isDebugEnabled()) {
+logger.debug(">>> Reading numberOfMessages page " + this.pageId + 
", returning " + numberOfMessages);
+ }
+ return numberOfMessages;
+  } finally {
+ if (!wasOpen) {
+close(false);
+ }
   }
}
 
public int getNumberOfMessages() {
-  return numberOfMessages.intValue();
+  return numberOfMessages;
}
 
public int getSize() {
-  return size.intValue();
+  return size;
}
 
-   @Override
-   public String toString() {
-  return "Page::pageNr=" + this.pageId + ", file=" + this.file;
+   private void setSize(int size) {
+  this.size = size;
}
 
@Override
-   public int compareTo(Page otherPage) {
-  return otherPage.getPageId() - this.pageId;
+   public String toString() {
+  return "Page::seqCreation=" + seqInt + ", pageNr=" + this.pageId + ", 
file=" + this.

[jira] [Updated] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic updated ARTEMIS-3850:
-
Fix Version/s: 2.24.0
   (was: 2.23.0)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 1h 20m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (ARTEMIS-2965) Allow mirror to stop capture events and delete inner queue

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-2965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic updated ARTEMIS-2965:
-
Fix Version/s: 2.24.0
   (was: 2.23.0)

> Allow mirror to stop capture events and delete inner queue
> --
>
> Key: ARTEMIS-2965
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2965
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>Affects Versions: 2.16.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Critical
> Fix For: 2.24.0
>
>
> When a mirror starts, the current events will not be cleared when 
> brokerConnection.stop() is called.
>  
> We should support removing the Mirror manager, and deleting the queue upon 
> brokerConnection.stop().
> (or another method TBD that would determine the semantic to remove the SnF 
> queue and future generation on mirror).
> Related comments: 
> [https://github.com/apache/activemq-artemis/pull/3316#discussion_r513491335]



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (ARTEMIS-3707) ResourceAdapter improvements

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic updated ARTEMIS-3707:
-
Fix Version/s: 2.24.0
   (was: 2.23.0)

> ResourceAdapter improvements
> 
>
> Key: ARTEMIS-3707
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3707
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>Reporter: Waldi
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 8h 50m
>  Remaining Estimate: 0h
>
> Hi Everybody,
> I've tried to install the resourceAdapter in openliberty/WLP by myself. I've 
> got in some troubles and fixed it by myself. Now, I would like to provide the 
> modifications and a small piece of documentation of the resourceAdapter, if 
> interested.
>  * Sample config / project for openliberty/WLP
>  * remove usage of the transactionManager in the resource adapter
>  * fix the jakarta ra.xml namespaces and classnames
>  * create a maven build for a rar archive with fewer dependencies and 
> therefore a smaller footprint.
> I took notice of ARTEMIS-1487 and ARTEMIS-1614. In my opinion, with my 
> contributions, we can close these issues. Can you tell me your thoughts and 
> give me feedback?



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (ARTEMIS-2618) Improve Handling of Shutdown on critical I/O Error

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic updated ARTEMIS-2618:
-
Fix Version/s: 2.24.0
   (was: 2.23.0)

> Improve Handling of Shutdown on critical I/O Error
> --
>
> Key: ARTEMIS-2618
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2618
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>Affects Versions: 2.11.0
>Reporter: Rico Neubauer
>Priority: Major
> Fix For: 2.24.0
>
> Attachments: Improve-Handling-of-Shutdown-on-critic.patch
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Would like to request an improvement in the handling of critical I/O errors 
> on opening journal files.
> If {{org.apache.activemq.artemis.core.io.nio.NIOSequentialFile}} fails to 
> open a journal file, the whole server shuts down with {{@Message(id = 222010, 
> value = "Critical IO Error, shutting down the server. file=1, message=0"}}.
> We have seen this in the wild, where a backup-software locked the file for a 
> short time while journal was about getting opened, resulting in the shutdown.
> Proposed improvement would be to have a short-running retry for opening the 
> journal files and only fail fatally if error persists.
> Will attach a proposal patch. Can also create a PR if you accept.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3838) Update Netty to 4.1.77.Final

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3838?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3838.


> Update Netty to 4.1.77.Final
> 
>
> Key: ARTEMIS-3838
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3838
> Project: ActiveMQ Artemis
>  Issue Type: Dependency upgrade
>  Components: Broker
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Update Netty to 4.1.77.Final



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3770) Refactor MQTT handling of client ID

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3770.


> Refactor MQTT handling of client ID
> ---
>
> Key: ARTEMIS-3770
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3770
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>Reporter: Justin Bertram
>Assignee: Justin Bertram
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> It would be useful to allow security manager implementations to modify the 
> client ID value used by MQTT clients. Refactor the MQTT implementation's 
> handling of client ID to support this functionality.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3823) Connection router - consistent hash modulo needs to deal with negative hash values

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3823?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3823.


> Connection router - consistent hash modulo needs to deal with negative hash 
> values
> --
>
> Key: ARTEMIS-3823
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3823
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: balancer
>Affects Versions: 2.22.0
>Reporter: Gary Tully
>Assignee: Gary Tully
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The connection router consistent hash modulo key transformer does not work 
> well if the hash produced a negative value.
> It makes matching more difficult to configure b/c both -1 and 1 need to be 
> matched for a broker ordinal 1.
>  
> it would be better if the modulo was confined to positive numbers,  rather 
> than the signed remainder.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3835) Deprecate addressesSettings configuration attribute with double plural in place of addressSettings

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3835.


> Deprecate addressesSettings configuration attribute with double plural in 
> place of addressSettings
> --
>
> Key: ARTEMIS-3835
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3835
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>  Components: Configuration
>Affects Versions: 2.22.0
>Reporter: Gary Tully
>Assignee: Gary Tully
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> the double plural is hard on the eyes, it is a map of address Settings
> with property configuration this is more visible.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3814) Update to ActiveMQ 5.17.1

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3814.


> Update to ActiveMQ 5.17.1
> -
>
> Key: ARTEMIS-3814
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3814
> Project: ActiveMQ Artemis
>  Issue Type: Dependency upgrade
>  Components: OpenWire
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Update ActiveMQ 5 deps to 5.17.1



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3700) Provide JakartaEE 10 artefacts and support

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3700.


> Provide JakartaEE 10 artefacts and support
> --
>
> Key: ARTEMIS-3700
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3700
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>  Components: API
>Affects Versions: 2.20.0
>Reporter: Emmanuel Hugonnet
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> With Jakarta Messaging 3.1 to be released we should plan to provide support 
> of the new set of APIs.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3833) Distributed AMQP large messages lose JMSCorrelationID

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3833?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3833.


> Distributed AMQP large messages lose JMSCorrelationID
> -
>
> Key: ARTEMIS-3833
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3833
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Domenico Francesco Bruscino
>Assignee: Domenico Francesco Bruscino
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> AMQP large messages lose JMSCorrelationID after they are distributed.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3806) Upgrade logging dependencies

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3806.


> Upgrade logging dependencies
> 
>
> Key: ARTEMIS-3806
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3806
> Project: ActiveMQ Artemis
>  Issue Type: Dependency upgrade
>Reporter: Justin Bertram
>Assignee: Justin Bertram
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3816) Connection router null pointer dereferences

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3816.


> Connection router null pointer dereferences
> ---
>
> Key: ARTEMIS-3816
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3816
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Domenico Francesco Bruscino
>Assignee: Domenico Francesco Bruscino
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Please find the latest report on new defect(s) introduced to 
> ApacheActiveMQArtemis found with Coverity Scan.
> {code:java}
> *** CID 1514692:  Null pointer dereferences  (FORWARD_NULL)
> /activemq-artemis/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/routing/ConnectionRouterManager.java:
>  115 in 
> org.apache.activemq.artemis.core.server.routing.ConnectionRouterManager.deployConnectionRouter(org.apache.activemq.artemis.core.config.routing.ConnectionRouterConfiguration)()
> *** CID 1514692:  Null pointer dereferences  (FORWARD_NULL)
> /activemq-artemis/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/routing/ConnectionRouterManager.java:
>  115 in 
> org.apache.activemq.artemis.core.server.routing.ConnectionRouterManager.deployConnectionRouter(org.apache.activemq.artemis.core.config.routing.ConnectionRouterConfiguration)()
> ** CID 1514687:  Null pointer dereferences  (NULL_RETURNS)
> /activemq-artemis/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/routing/caches/LocalCache.java:
>  74 in 
> org.apache.activemq.artemis.core.server.routing.caches.LocalCache.start()()
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (ARTEMIS-3849) Upgrade Spring Framework to 5.3.20

2022-06-07 Thread Clebert Suconic (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-3849.


> Upgrade Spring Framework to 5.3.20
> --
>
> Key: ARTEMIS-3849
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3849
> Project: ActiveMQ Artemis
>  Issue Type: Dependency upgrade
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
>Priority: Major
> Fix For: 2.23.0
>
>
> Upgrade Spring Framework to 5.3.20



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779089&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779089
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 13:20
Start Date: 07/Jun/22 13:20
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891216710


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/PagedReferenceImpl.java:
##
@@ -50,14 +47,24 @@ public class PagedReferenceImpl extends 
LinkedListImpl.Node
 
private int messageEstimate = -1;
 
+   PagePosition position;
+
+   @Override
+   public PagePosition getPosition() {
+  if (position == null) {
+ position = getPagedMessage().newPositionObject();
+  }
+  return position;
+   }

Review Comment:
   Instead of making getPosition() synchronized, I will just make positon 
volatile here.
   
   This is used on browsing. And this is just caching the value.





Issue Time Tracking
---

Worklog Id: (was: 779089)
Time Spent: 1h 20m  (was: 1h 10m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 1h 20m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779086&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779086
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 13:18
Start Date: 07/Jun/22 13:18
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891214441


##
artemis-commons/src/main/java/org/apache/activemq/artemis/utils/SizeAwareMetric.java:
##
@@ -59,6 +59,13 @@ public interface AddCallback {
 
private Runnable underCallback;
 
+   /** To be used in a case where we just measure elements */
+   public SizeAwareMetric() {
+  this.sizeEnabled = false;
+  this.elementsEnabled = false;
+   }

Review Comment:
   I would need to use two AtomicInteger on QueueImpl, one for the size in 
bytes, not for the size in messages.
   
   I use this to determine when to stop reading from paging.
   
   
   Besides I could eventually start using some of the callback methods.





Issue Time Tracking
---

Worklog Id: (was: 779086)
Time Spent: 1h 10m  (was: 1h)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779083&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779083
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 13:16
Start Date: 07/Jun/22 13:16
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891211486


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageCursorProviderImpl.java:
##
@@ -462,7 +285,12 @@ public void cleanup() {
// Then we do some check on eventual pages that can be already 
removed but they are away from the streaming
cleanupMiddleStream(depagedPages, depagedPagesSet, cursorList, 
minPage, firstPage);
 
-   if (pagingStore.getNumberOfPages() == 0 || 
pagingStore.getNumberOfPages() == 1 && 
pagingStore.getCurrentPage().getNumberOfMessages() == 0) {
+   if (pagingStore.getNumberOfPages() < 0) {
+  new Exception("WHAT???").printStackTrace(System.out);

Review Comment:
   I'm adding assert pagingStore.getNumberOfPages() >= 0; here





Issue Time Tracking
---

Worklog Id: (was: 779083)
Time Spent: 1h  (was: 50m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779081&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779081
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 13:15
Start Date: 07/Jun/22 13:15
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891210116


##
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageCursorProviderImpl.java:
##
@@ -462,7 +285,12 @@ public void cleanup() {
// Then we do some check on eventual pages that can be already 
removed but they are away from the streaming
cleanupMiddleStream(depagedPages, depagedPagesSet, cursorList, 
minPage, firstPage);
 
-   if (pagingStore.getNumberOfPages() == 0 || 
pagingStore.getNumberOfPages() == 1 && 
pagingStore.getCurrentPage().getNumberOfMessages() == 0) {
+   if (pagingStore.getNumberOfPages() < 0) {
+  new Exception("WHAT???").printStackTrace(System.out);

Review Comment:
   OOps... thanks...  Debug message!





Issue Time Tracking
---

Worklog Id: (was: 779081)
Time Spent: 50m  (was: 40m)

> Add Option to read messages into paging based on sizing and eliminate caching
> -
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.23.0
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Deleted] (AMQCPP-716) Facts about Cisco Certification exams

2022-06-07 Thread Timothy A. Bish (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQCPP-716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy A. Bish deleted AMQCPP-716:
---


> Facts about Cisco Certification exams
> -
>
> Key: AMQCPP-716
> URL: https://issues.apache.org/jira/browse/AMQCPP-716
> Project: ActiveMQ C++ Client
>  Issue Type: Bug
>Reporter: Thomas Wenz
>Assignee: Timothy A. Bish
>Priority: Major
>
> h2. Cisco Certification Overview
>  
> Choosing the right [Cisco 
> certification|https://certificationstime.com/cisco-exam-dumps/] path for you 
> depends on your interest, experience level and career goals. If you’re 
> looking to break into Cisco technology, the two most popular certification 
> paths are network operations or network design. Cisco developed certification 
> paths to help IT professionals successfully deploy and manage Cisco 
> technology.
> Many businesses choose Cisco for their networking needs, and most of them 
> will need Network Engineers, System Engineers, Security Analysts, and other 
> network management positions to keep their infrastructure running. As a 
> result, future CBKs will be highly sought after.
> Cisco certifications are a powerful way to improve your job prospects and 
> skills, but they have expiration dates. The Cisco Certified Network Associate 
> (CCNA), the Cisco Certified Network Professional (CCNP), the Cisco Certified 
> Internetwork Expert (CCIE), and the Cisco Certified Design Expert (CCDE) are 
> just a few of the many types of certifications available from Cisco.
> Cisco offers certifications at four levels: entry, associate, professional 
> and expert. Cisco once offered an architect level, but that was retired. In 
> addition to the core levels, a specialist level is available in several 
> areas. Most of the certifications fall into the category of either network 
> infrastructure or software development.
> With IT and technical certifications in high demand, Cisco guides you during 
> every step of the process, from reviewing the exam topics to preparing and 
> practicing for each exam to scheduling an exam through third-party provider 
> Pearson VUE.
> *The Cisco certification process is made up of four steps:*
>  * Preparation (learning about Cisco products)
>  * Practice Exam Questions
>  * Microsoft Certification Exam Dumps
>  * Assessment (taking exams)
>  * Validation (using Cisco skills on-the-job)
>  * Recertification (renewing credentials)
> h2. Which Cisco Certification Path Is Best?
> The most essential incentive to become certified in Cisco networking 
> technologies is for career development. The Cisco Certified Network Associate 
> (CCNA) or the Cisco Certified Network Professional (CCNP Enterprise) is some 
> of the most effective strategies to achieve your professional goals:
> Cisco certification is a sign that you have the knowledge and experience to 
> perform the task. Network Engineers, Systems Administrators, and Information 
> Technology (IT) Directors are just a few of the jobs for which your CCNA may 
> be used.
> To learn more about Cisco Certification and get best ways to prepared exams, 
> visit{*}:{*} [Cisco Exam 
> Dumps|https://certificationstime.com/cisco-exam-dumps/].
> h2. Cisco Certification Exams
> Prepare for, practice, and pass your exams; earn your certifications; and 
> take another step toward the career you want.
> The Cisco Certified Network Associate, or CCNA, is a top IT security 
> certification and is one of the most respected certifications in the world. 
> An associate-level certificate for IT networking, it helps candidates boost 
> their professional career with better jobs and higher pay. The CCNA 
> certification proves an individual’s capabilities to configure, operate, and 
> troubleshoot switched and routed networks.
> As more companies turn to the cloud to run their businesses, they become 
> increasingly dependent on vendors like Cisco, which makes the underlying 
> networking hardware and software. If you’re pursuing a career as a network 
> professional, a Cisco certification can help you stand out at your company 
> and in the job market.
> But with so many Cisco certifications Exams available
>  * 500-452 Practice Questions
>  * 700-703 Practice Questions
>  * 650-059 Practice Questions
>  * 500-240 Practice Questions
>  * 700-701 Practice Questions
>  * 648-238 Practice Questions
> Check more Cisco Certification Exams. How do you choose the right path? 
> [CertificationsTime|https://certificationstime.com/] provide the best 
> Practice Questions, You should try to pass your exam in First Attempt.
> h2. Why Do People Choose Cisco Certifications?
> Cisco Systems, Inc. is a provider of networking and communication technology 
> products and services. The firm’s most well-known offerings are its business 
> routing and switching solu

[jira] [Deleted] (AMQCPP-715) Know All about Amazon Certification exams

2022-06-07 Thread Timothy A. Bish (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQCPP-715?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy A. Bish deleted AMQCPP-715:
---


> Know All about Amazon Certification exams
> -
>
> Key: AMQCPP-715
> URL: https://issues.apache.org/jira/browse/AMQCPP-715
> Project: ActiveMQ C++ Client
>  Issue Type: Bug
>Reporter: Thomas Wenz
>Assignee: Timothy A. Bish
>Priority: Major
>
> h2. What is an Amazon Certification?
> [*Amazon Certification*|https://certificationstime.com/amazon-exam-dumps/] ** 
> helps learners build credibility and confidence by validating their cloud 
> expertise with an industry-recognized credential and helps organizations 
> identify skilled professionals to lead cloud initiatives using AWS. 
> An Amazon Certification is a credential issued by AWS to individuals who show 
> they have specific knowledge, skills, and abilities. We work with AWS experts 
> to set the bar for required experience in common cloud job roles and 
> expertise in specific technical areas. You can show you meet that bar by 
> taking—and passing—one of our Amazon Certification exams. When you do, AWS 
> awards you an Amazon Certification.
> h2. Choosing the right Amazon Certification: What’s the value?
> Getting AWS certified shows that you have some of the most in-demand (and 
> profitable) skills as validated by one of the most recognizable entities in 
> cloud computing. In the enterprise, certification demonstrates a shared 
> understanding of a platform, a shared terminology, and a certain level of 
> cloud expertise that can speed up time to value for cloud projects.
> In addition to validating your technical skills, Amazon Certification can 
> help you advance your expertise. Once AWS Certified, you’ll be eligible for 
> perks that help you show off your achievements and keep learning.
> To learn more about Amazon Certification and get best ways to prepared exams, 
> visit: [*Amazon Exam 
> Dumps*|https://certificationstime.com/amazon-exam-dumps/]{*}.{*}
> Getting AWS Certified can help you propel your career, whether you’re looking 
> to find a new role, showcase your skills to take on a new project, or become 
> your team’s go-to expert. Here are three reasons why:
> *Prepare for your future*
> 28% forecasted growth in jobs that require cloud skills in the next five 
> years. Preparing for an exam is a great way to build new skills.
> *Show you can innovate*
> 91% of organizations with AWS Certified staff say having that staff increases 
> innovation with AWS services.
> *Build your credibility*
> 90% of IT leaders that employ AWS Certified staff say productivity improved 
> after their staff earned Amazon Certifications, and 89% report faster 
> troubleshooting.
> h2. Which certification is best in AWS?
> Firstly, All Amazon Certifications important and are a great asset to have 
> from a professional standpoint. Deciding which one to take, or which one is 
> ‘best’ largely depends on your interests, your role, and where you would like 
> to take your career.
> For example, If you enjoy working in the networking and architectural space, 
> then the following route would be a great fit:
>  * AWS Cloud Practitioner
>  * AWS Solutions Architect – Associate
>  * AWS Solutions Architect – Professional
>  * Networking Specialty
> However, if you were a keen developer or were looking to move into 
> application development, then you might select a different route:
>  * AWS Cloud Practitioner
>  * AWS Developer – Associate
>  * AWS Developer – Professional
> So it really depends on what you are trying to achieve as an individual, and 
> where you want to take your career.
> Your career goals can help direct you down the right certification learning 
> path. Let’s take a look at the different Amazon certifications Exam Practice 
> Questions offered by 
> [*CertificationsTime*|https://certificationstime.com/]{*}.{*}
> SCS-C01 Practice Questions
> SAP-C01 Practice Questions
> CLF-C01 Practice Questions
> BDS-C00 Practice Questions
> AWS-SysOps Practice Questions
> DOP-C01 Practice Questions
> Check more Amazon Certification Exams.
> h2. What are Amazon Certifications and why are they important?
> An Amazon Certification is an industry-recognized credential. It helps 
> learners build credibility by validating a level of Amazon Web Services cloud 
> expertise and it helps organizations identify skilled professionals to lead 
> cloud initiatives using AWS. A professional obtains an Amazon Certification 
> after passing one or more exams that AWS offers. Amazon Certifications are 
> valid for three years. To maintain an AWS Certified status, AWS requires you 
> to periodically demonstrate your continued expertise through a process called 
> recertification.
> Even as enterprises adopt multi-cloud strategies, this doesn’t dimin

[jira] [Deleted] (AMQCPP-717) Details about CompTIA Certification exams

2022-06-07 Thread Timothy A. Bish (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQCPP-717?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy A. Bish deleted AMQCPP-717:
---


> Details about CompTIA Certification exams
> -
>
> Key: AMQCPP-717
> URL: https://issues.apache.org/jira/browse/AMQCPP-717
> Project: ActiveMQ C++ Client
>  Issue Type: Bug
>Reporter: Thomas Wenz
>Assignee: Timothy A. Bish
>Priority: Major
>
> CompTIA stands for the Computing Technology Industry Association. CompTIA 
> (The Computing Technology Industry Association) is the leading provider of 
> vendor-neutral IT certifications in the world. With more than 2 million IT 
> certifications issued worldwide, CompTIA is dedicated to helping IT 
> professionals lead the charge in our digitally connected world. It is a 
> leading non-profit organization dedicated to providing vendor-neutral 
> certification in IT to anyone who wants to establish a strong foothold in the 
> IT industry.
> [*CompTIA certification*|https://certificationstime.com/comptia-exam-dumps/] 
> exams are the starting point for an information technology (IT) career. The 
> exams cover maintenance of PCs, mobile devices, laptops, operating systems, 
> printers, networks and more.
> CompTIA is a nonprofit organization offering dozens of widely-recognized IT 
> certifications. There are certs for fundamental computer skills, then cyber 
> security certifications, infrastructure certifications, for cloud computing, 
> penetration testing, server maintenance, and more. When faced with such an 
> overwhelming choice of certification training, it is only natural to be 
> confused.
> The CompTIA certification is designed to help you land an entry-level 
> position in IT by ensuring you know the basics of working with hardware, 
> networks, and computer systems.
> One of the most reliable ways of quickly climbing up the career ladder is 
> through getting certified in the right fields. If you are currently working 
> in the IT industry and focusing in areas such as computer security, systems 
> administration, or in the server environment, there are a lot of 
> certifications, particularly CompTIA courses, out there to help you better 
> showcase your expertise.
> CompTIA Certifications are considered one of the most trusted credentials in 
> the IT industry as it accurately reflects employee success. CompTIA engages 
> international focus groups and IT leaders from around the world that define 
> various certification programs and helps you to create CompTIA certification 
> exams.
> h2. 4 Steps to Certification
> CompTIA certifications are industry-leading credentials to start and grow 
> your IT career. Whether you’re looking for an entry-level IT certification to 
> get your first IT job, or you want to boost your IT career with an advanced 
> IT certification — such as in cybersecurity — CompTIA can help.
> Step 1: Choose Your IT Certification
> Step 2: Get Familiar With Your IT Certification Exam
> Step 3: Begin Learning and Training for Your Exam
> Step 4: Register and Take Your Certification Exam
> With your certification in hand, you’re joining a community of more than 2 
> million IT professionals who are CompTIA certified. You’ve earned a powerful, 
> globally-recognized IT certification that will help you advance your IT 
> career.
> To learn more about CompTIA Certification and get best ways to prepared 
> exams, visit{*}:{*} [*CompTIA Exam 
> Dumps*|https://certificationstime.com/comptia-exam-dumps/].
> h2. Certification Types
> CompTIA certs are divided into four main categories based on the type of 
> skills they develop.
>  * Core Skills Certifications
>  * Infrastructure Certifications
>  * Cyber Security Certifications
>  * Additional Professional Certifications
> No matter where you are in your IT career, it is essential to keep upgrading 
> your skills and technical knowledge. The tech industry is continually 
> evolving, and IT professionals cannot afford to lag behind.
> h2. CompTIA Career Pathway
> CompTIA certifications align with IT infrastructure and cybersecurity career 
> paths, with each added certification representing a deepening of your 
> expertise. Core certifications, like CompTIA A+, lay the groundwork for the 
> specialized pathway certifications, and additional professional 
> certifications cover necessary IT skills like project management.
> h2. Benefits of CompTIA Certificate
> Below are the main benefits of CompTIA certifications:
>  * CompTIA certifications offer a reward for IT career opportunities.
>  * CompTIA certifications help you to increased job security in your current 
> position.
>  * Helps professionals to gain respect and credibility in the IT workplace.
>  * CompTIA certifications can open the door to lucrative government and 
> military technology positions.
>  * Havi

[jira] [Work logged] (ARTEMIS-3850) Add Option to read messages into paging based on sizing and eliminate caching

2022-06-07 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3850?focusedWorklogId=779061&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779061
 ]

ASF GitHub Bot logged work on ARTEMIS-3850:
---

Author: ASF GitHub Bot
Created on: 07/Jun/22 12:29
Start Date: 07/Jun/22 12:29
Worklog Time Spent: 10m 
  Work Description: gemmellr commented on code in PR #4101:
URL: https://github.com/apache/activemq-artemis/pull/4101#discussion_r891092466


##
artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporter.java:
##
@@ -398,46 +399,50 @@ private void printPagedMessagesAsXML() {
ActiveMQServerLogger.LOGGER.debug("Reading page store " + store 
+ " folder = " + folder);
 
int pageId = (int) pageStore.getFirstPage();
-   for (int i = 0; i < pageStore.getNumberOfPages(); i++) {
+   for (long i = 0; i < pageStore.getNumberOfPages(); i++) {
   ActiveMQServerLogger.LOGGER.debug("Reading page " + pageId);
-  Page page = pageStore.createPage(pageId);
+  Page page = pageStore.newPageObject(pageId);

Review Comment:
   The pageId variable above should be changed to _long_ as well, it is 
currently being truncated to _int_ on declaration and then widened back to 
_long_ here.



##
artemis-commons/src/main/java/org/apache/activemq/artemis/utils/collections/EmptyList.java:
##
@@ -0,0 +1,109 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.artemis.utils.collections;
+
+import java.util.function.Consumer;
+
+public class EmptyList implements LinkedList {
+
+
+   private static final LinkedList emptyList = new EmptyList();
+
+   public static final  LinkedList getEmptyList() {
+  return (LinkedList) emptyList;
+   }
+
+   private EmptyList() {
+   }
+
+
+
+
+   @Override
+   public void addHead(E e) {
+   }

Review Comment:
   Its usually nicer for unmodifiable lists to throw on attempts to change 
them, so that people who misuse them find it out pretty quickly, as opposed to 
having to investigate later where exactly things happened to unexpectedly get 
black-holed.
   
   (Same comment applies to all other manipulating methods)



##
artemis-commons/src/main/java/org/apache/activemq/artemis/utils/SizeAwareMetric.java:
##
@@ -59,6 +59,13 @@ public interface AddCallback {
 
private Runnable underCallback;
 
+   /** To be used in a case where we just measure elements */
+   public SizeAwareMetric() {
+  this.sizeEnabled = false;
+  this.elementsEnabled = false;
+   }

Review Comment:
   So, a counter? Why use this rather than a basic/atomic numeric type?



##
artemis-commons/src/main/java/org/apache/activemq/artemis/utils/collections/LinkedListImpl.java:
##
@@ -102,6 +103,17 @@ public void addHead(E e) {
   size++;
}
 
+   @Override
+   public E get(int position) {
+  Node current = head.next;
+
+  for (int i = 0; i < position && current != null; i++) {
+ current = current.next;
+  }
+
+  return current.val();

Review Comment:
   This assumes current exists but it may not (which the for handles). Should 
throw index out of bounds rather than NPE?



##
artemis-server/src/main/java/org/apache/activemq/artemis/core/deployers/impl/FileConfigurationParser.java:
##
@@ -1261,6 +1265,14 @@ protected Pair 
parseAddressSettings(final Node node) {
 long pageSizeLong = 
ByteUtil.convertTextBytes(getTrimmedTextContent(child));
 Validators.POSITIVE_INT.validate(PAGE_SIZE_BYTES_NODE_NAME, 
pageSizeLong);
 addressSettings.setPageSizeBytes((int) pageSizeLong);
+ }  else if (MAX_READ_PAGE_MESSAGES_NODE_NAME.equalsIgnoreCase(name)) {
+long maxReadPageMessages = 
Long.parseLong(getTrimmedTextContent(child));
+Validators.POSITIVE_INT.validate(PAGE_SIZE_BYTES_NODE_NAME, 
maxReadPageMessages);
+addressSettings.setMaxReadPageMessages((int)maxReadPageMessages);
+ }  else if (MAX_READ_PAGE_BYTES_NODE_NAME.equals

[jira] [Updated] (ARTEMIS-3853) Ping command for IPv6 is wrong on Windows

2022-06-07 Thread Domenico Francesco Bruscino (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Domenico Francesco Bruscino updated ARTEMIS-3853:
-
Priority: Minor  (was: Major)

> Ping command for IPv6 is wrong on Windows
> -
>
> Key: ARTEMIS-3853
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3853
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Domenico Francesco Bruscino
>Assignee: Domenico Francesco Bruscino
>Priority: Minor
>
> The ping for IPv6 command used is not working properly on Windows, we should 
> be using 'ping -6 -n 1 -w %d %s'.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (ARTEMIS-3853) Ping command for IPv6 is wrong on Windows

2022-06-07 Thread Domenico Francesco Bruscino (Jira)
Domenico Francesco Bruscino created ARTEMIS-3853:


 Summary: Ping command for IPv6 is wrong on Windows
 Key: ARTEMIS-3853
 URL: https://issues.apache.org/jira/browse/ARTEMIS-3853
 Project: ActiveMQ Artemis
  Issue Type: Bug
Reporter: Domenico Francesco Bruscino
Assignee: Domenico Francesco Bruscino


The ping for IPv6 command used is not working properly on Windows, we should be 
using 'ping -6 -n 1 -w %d %s'.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Work started] (ARTEMIS-3853) Ping command for IPv6 is wrong on Windows

2022-06-07 Thread Domenico Francesco Bruscino (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on ARTEMIS-3853 started by Domenico Francesco Bruscino.

> Ping command for IPv6 is wrong on Windows
> -
>
> Key: ARTEMIS-3853
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3853
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: Domenico Francesco Bruscino
>Assignee: Domenico Francesco Bruscino
>Priority: Major
>
> The ping for IPv6 command used is not working properly on Windows, we should 
> be using 'ping -6 -n 1 -w %d %s'.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (AMQCPP-717) Details about CompTIA Certification exams

2022-06-07 Thread Thomas Wenz (Jira)
Thomas Wenz created AMQCPP-717:
--

 Summary: Details about CompTIA Certification exams
 Key: AMQCPP-717
 URL: https://issues.apache.org/jira/browse/AMQCPP-717
 Project: ActiveMQ C++ Client
  Issue Type: Bug
Reporter: Thomas Wenz
Assignee: Timothy A. Bish


CompTIA stands for the Computing Technology Industry Association. CompTIA (The 
Computing Technology Industry Association) is the leading provider of 
vendor-neutral IT certifications in the world. With more than 2 million IT 
certifications issued worldwide, CompTIA is dedicated to helping IT 
professionals lead the charge in our digitally connected world. It is a leading 
non-profit organization dedicated to providing vendor-neutral certification in 
IT to anyone who wants to establish a strong foothold in the IT industry.

[*CompTIA certification*|https://certificationstime.com/comptia-exam-dumps/] 
exams are the starting point for an information technology (IT) career. The 
exams cover maintenance of PCs, mobile devices, laptops, operating systems, 
printers, networks and more.

CompTIA is a nonprofit organization offering dozens of widely-recognized IT 
certifications. There are certs for fundamental computer skills, then cyber 
security certifications, infrastructure certifications, for cloud computing, 
penetration testing, server maintenance, and more. When faced with such an 
overwhelming choice of certification training, it is only natural to be 
confused.

The CompTIA certification is designed to help you land an entry-level position 
in IT by ensuring you know the basics of working with hardware, networks, and 
computer systems.

One of the most reliable ways of quickly climbing up the career ladder is 
through getting certified in the right fields. If you are currently working in 
the IT industry and focusing in areas such as computer security, systems 
administration, or in the server environment, there are a lot of 
certifications, particularly CompTIA courses, out there to help you better 
showcase your expertise.

CompTIA Certifications are considered one of the most trusted credentials in 
the IT industry as it accurately reflects employee success. CompTIA engages 
international focus groups and IT leaders from around the world that define 
various certification programs and helps you to create CompTIA certification 
exams.
h2. 4 Steps to Certification

CompTIA certifications are industry-leading credentials to start and grow your 
IT career. Whether you’re looking for an entry-level IT certification to get 
your first IT job, or you want to boost your IT career with an advanced IT 
certification — such as in cybersecurity — CompTIA can help.

Step 1: Choose Your IT Certification

Step 2: Get Familiar With Your IT Certification Exam

Step 3: Begin Learning and Training for Your Exam

Step 4: Register and Take Your Certification Exam

With your certification in hand, you’re joining a community of more than 2 
million IT professionals who are CompTIA certified. You’ve earned a powerful, 
globally-recognized IT certification that will help you advance your IT career.

To learn more about CompTIA Certification and get best ways to prepared exams, 
visit{*}:{*} [*CompTIA Exam 
Dumps*|https://certificationstime.com/comptia-exam-dumps/].
h2. Certification Types

CompTIA certs are divided into four main categories based on the type of skills 
they develop.
 * Core Skills Certifications
 * Infrastructure Certifications
 * Cyber Security Certifications
 * Additional Professional Certifications

No matter where you are in your IT career, it is essential to keep upgrading 
your skills and technical knowledge. The tech industry is continually evolving, 
and IT professionals cannot afford to lag behind.
h2. CompTIA Career Pathway

CompTIA certifications align with IT infrastructure and cybersecurity career 
paths, with each added certification representing a deepening of your 
expertise. Core certifications, like CompTIA A+, lay the groundwork for the 
specialized pathway certifications, and additional professional certifications 
cover necessary IT skills like project management.
h2. Benefits of CompTIA Certificate

Below are the main benefits of CompTIA certifications:
 * CompTIA certifications offer a reward for IT career opportunities.
 * CompTIA certifications help you to increased job security in your current 
position.
 * Helps professionals to gain respect and credibility in the IT workplace.
 * CompTIA certifications can open the door to lucrative government and 
military technology positions.
 * Having CompTIA certifications helps to hire managers that you want to 
advance your IT career.
 * Hiring CompTIA certified can leads to higher customer satisfaction.
 * Businesses can easily increase with CompTIA certified employees can increase 
productivity.

h2. How to prepare for a CompTIA certification exam

CompTIA's exams a

[jira] [Created] (AMQCPP-716) Facts about Cisco Certification exams

2022-06-07 Thread Thomas Wenz (Jira)
Thomas Wenz created AMQCPP-716:
--

 Summary: Facts about Cisco Certification exams
 Key: AMQCPP-716
 URL: https://issues.apache.org/jira/browse/AMQCPP-716
 Project: ActiveMQ C++ Client
  Issue Type: Bug
Reporter: Thomas Wenz
Assignee: Timothy A. Bish


h2. Cisco Certification Overview

 

Choosing the right [Cisco 
certification|https://certificationstime.com/cisco-exam-dumps/] path for you 
depends on your interest, experience level and career goals. If you’re looking 
to break into Cisco technology, the two most popular certification paths are 
network operations or network design. Cisco developed certification paths to 
help IT professionals successfully deploy and manage Cisco technology.

Many businesses choose Cisco for their networking needs, and most of them will 
need Network Engineers, System Engineers, Security Analysts, and other network 
management positions to keep their infrastructure running. As a result, future 
CBKs will be highly sought after.

Cisco certifications are a powerful way to improve your job prospects and 
skills, but they have expiration dates. The Cisco Certified Network Associate 
(CCNA), the Cisco Certified Network Professional (CCNP), the Cisco Certified 
Internetwork Expert (CCIE), and the Cisco Certified Design Expert (CCDE) are 
just a few of the many types of certifications available from Cisco.

Cisco offers certifications at four levels: entry, associate, professional and 
expert. Cisco once offered an architect level, but that was retired. In 
addition to the core levels, a specialist level is available in several areas. 
Most of the certifications fall into the category of either network 
infrastructure or software development.

With IT and technical certifications in high demand, Cisco guides you during 
every step of the process, from reviewing the exam topics to preparing and 
practicing for each exam to scheduling an exam through third-party provider 
Pearson VUE.

*The Cisco certification process is made up of four steps:*
 * Preparation (learning about Cisco products)
 * Practice Exam Questions
 * Microsoft Certification Exam Dumps
 * Assessment (taking exams)
 * Validation (using Cisco skills on-the-job)
 * Recertification (renewing credentials)

h2. Which Cisco Certification Path Is Best?

The most essential incentive to become certified in Cisco networking 
technologies is for career development. The Cisco Certified Network Associate 
(CCNA) or the Cisco Certified Network Professional (CCNP Enterprise) is some of 
the most effective strategies to achieve your professional goals:

Cisco certification is a sign that you have the knowledge and experience to 
perform the task. Network Engineers, Systems Administrators, and Information 
Technology (IT) Directors are just a few of the jobs for which your CCNA may be 
used.

To learn more about Cisco Certification and get best ways to prepared exams, 
visit{*}:{*} [Cisco Exam 
Dumps|https://certificationstime.com/cisco-exam-dumps/].
h2. Cisco Certification Exams

Prepare for, practice, and pass your exams; earn your certifications; and take 
another step toward the career you want.

The Cisco Certified Network Associate, or CCNA, is a top IT security 
certification and is one of the most respected certifications in the world. An 
associate-level certificate for IT networking, it helps candidates boost their 
professional career with better jobs and higher pay. The CCNA certification 
proves an individual’s capabilities to configure, operate, and troubleshoot 
switched and routed networks.

As more companies turn to the cloud to run their businesses, they become 
increasingly dependent on vendors like Cisco, which makes the underlying 
networking hardware and software. If you’re pursuing a career as a network 
professional, a Cisco certification can help you stand out at your company and 
in the job market.

But with so many Cisco certifications Exams available
 * 500-452 Practice Questions
 * 700-703 Practice Questions
 * 650-059 Practice Questions
 * 500-240 Practice Questions
 * 700-701 Practice Questions
 * 648-238 Practice Questions

Check more Cisco Certification Exams. How do you choose the right path? 
[CertificationsTime|https://certificationstime.com/] provide the best Practice 
Questions, You should try to pass your exam in First Attempt.
h2. Why Do People Choose Cisco Certifications?

Cisco Systems, Inc. is a provider of networking and communication technology 
products and services. The firm’s most well-known offerings are its business 
routing and switching solutions, which route data, voice, and video traffic 
across worldwide networks. Storage networking solutions, unified communications 
applications (WebEx), telepresence & collaboration (WebEx), as well as a 
variety of services is available from Cisco.

The Cisco Career Certification program is comprehensive in order to guar

[jira] [Created] (AMQCPP-715) Know All about Amazon Certification exams

2022-06-07 Thread Thomas Wenz (Jira)
Thomas Wenz created AMQCPP-715:
--

 Summary: Know All about Amazon Certification exams
 Key: AMQCPP-715
 URL: https://issues.apache.org/jira/browse/AMQCPP-715
 Project: ActiveMQ C++ Client
  Issue Type: Bug
Reporter: Thomas Wenz
Assignee: Timothy A. Bish


h2. What is an Amazon Certification?

[*Amazon Certification*|https://certificationstime.com/amazon-exam-dumps/] ** 
helps learners build credibility and confidence by validating their cloud 
expertise with an industry-recognized credential and helps organizations 
identify skilled professionals to lead cloud initiatives using AWS. 

An Amazon Certification is a credential issued by AWS to individuals who show 
they have specific knowledge, skills, and abilities. We work with AWS experts 
to set the bar for required experience in common cloud job roles and expertise 
in specific technical areas. You can show you meet that bar by taking—and 
passing—one of our Amazon Certification exams. When you do, AWS awards you an 
Amazon Certification.
h2. Choosing the right Amazon Certification: What’s the value?

Getting AWS certified shows that you have some of the most in-demand (and 
profitable) skills as validated by one of the most recognizable entities in 
cloud computing. In the enterprise, certification demonstrates a shared 
understanding of a platform, a shared terminology, and a certain level of cloud 
expertise that can speed up time to value for cloud projects.

In addition to validating your technical skills, Amazon Certification can help 
you advance your expertise. Once AWS Certified, you’ll be eligible for perks 
that help you show off your achievements and keep learning.

To learn more about Amazon Certification and get best ways to prepared exams, 
visit: [*Amazon Exam 
Dumps*|https://certificationstime.com/amazon-exam-dumps/]{*}.{*}

Getting AWS Certified can help you propel your career, whether you’re looking 
to find a new role, showcase your skills to take on a new project, or become 
your team’s go-to expert. Here are three reasons why:

*Prepare for your future*

28% forecasted growth in jobs that require cloud skills in the next five years. 
Preparing for an exam is a great way to build new skills.

*Show you can innovate*

91% of organizations with AWS Certified staff say having that staff increases 
innovation with AWS services.

*Build your credibility*

90% of IT leaders that employ AWS Certified staff say productivity improved 
after their staff earned Amazon Certifications, and 89% report faster 
troubleshooting.
h2. Which certification is best in AWS?

Firstly, All Amazon Certifications important and are a great asset to have from 
a professional standpoint. Deciding which one to take, or which one is ‘best’ 
largely depends on your interests, your role, and where you would like to take 
your career.

For example, If you enjoy working in the networking and architectural space, 
then the following route would be a great fit:
 * AWS Cloud Practitioner
 * AWS Solutions Architect – Associate
 * AWS Solutions Architect – Professional
 * Networking Specialty

However, if you were a keen developer or were looking to move into application 
development, then you might select a different route:
 * AWS Cloud Practitioner
 * AWS Developer – Associate
 * AWS Developer – Professional

So it really depends on what you are trying to achieve as an individual, and 
where you want to take your career.

Your career goals can help direct you down the right certification learning 
path. Let’s take a look at the different Amazon certifications Exam Practice 
Questions offered by 
[*CertificationsTime*|https://certificationstime.com/]{*}.{*}

SCS-C01 Practice Questions

SAP-C01 Practice Questions

CLF-C01 Practice Questions

BDS-C00 Practice Questions

AWS-SysOps Practice Questions

DOP-C01 Practice Questions

Check more Amazon Certification Exams.
h2. What are Amazon Certifications and why are they important?

An Amazon Certification is an industry-recognized credential. It helps learners 
build credibility by validating a level of Amazon Web Services cloud expertise 
and it helps organizations identify skilled professionals to lead cloud 
initiatives using AWS. A professional obtains an Amazon Certification after 
passing one or more exams that AWS offers. Amazon Certifications are valid for 
three years. To maintain an AWS Certified status, AWS requires you to 
periodically demonstrate your continued expertise through a process called 
recertification.

Even as enterprises adopt multi-cloud strategies, this doesn’t diminish the 
importance of an Amazon Certification – quite the opposite. With more than one 
million customers, AWS is still the provider of choice for public cloud 
adoption, where 64% of enterprises and 68% of SMBs are running applications 
(according to the 2018 Right Scale State of the Cloud Report). Continued strong