web-dev-qa-db-fra.com

Cassandra et Java 9 - ThreadPriorityPolicy = 42 est en dehors de la plage autorisée

Très récemment, j'ai installé JDK 9 et Apache Cassandra à partir du site officiel. Mais maintenant, quand je commence cassandra au premier plan, je reçois ce message:

Apache-cassandra-3.11.1/bin$ ./cassandra -f

[0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/home/mmatak/monero/Apache-cassandra-3.11.1/logs/gc.log instead.
intx ThreadPriorityPolicy=42 is outside the allowed range [ 0 ... 1 ]
Improperly specified VM option 'ThreadPriorityPolicy=42'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Jusqu'à présent, je n'ai trouvé aucune solution pour cela. Est-il possible que Java 9 et Cassandra ne soient pas encore compatibles? Voici le problème mentionné également - # CASSANDRA-13107

Mais je ne suis pas sûr de savoir comment simplement "enlever le drapeau"? Où est-il possible de remplacer ou de supprimer ce drapeau?

13
Martin Matak

J'ai eu exactement le même problème: Je ne peux pas démarrer Cassandra (cluster à noeud unique sur CentOS7)

Si c'est une option pour vous, utiliser Java 8 au lieu de 9 est le moyen le plus simple de résoudre le problème.

6
wiaylise

@Martin Matak Il suffit de commenter cette ligne dans le fichier conf/jvm.options:

########################
# GENERAL JVM SETTINGS #
########################



# allows lowering thread priority without being root on linux - probably
# not necessary on Windows but doesn't harm anything.
# see http://tech.stolsvik.com/2010/01/linux-Java-thread-priorities-workaround.html
**#-XX:ThreadPriorityPolicy=42**
4
Jay Wojick

La définition des variables env suivantes a résolu le problème dans MAC export Java8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

2
Madhu Kiran Seelam

Solution à votre question

Raison de cette exception

  1. Plusieurs versions de JDK en cours d'exécution, probablement JDK9, JDK 10 sont à l'origine de cette exception.
  2. Définissez le chemin sur Point Version JDK 8 uniquement.
  3. Actuellement, on souhaite que cassandra 3.1 soit supérieur à jdk 8 uniquement.

Modification du fichier Cassandra-Conf (/opt/Apache-cassandra-3.11.2/conf/cassandra-env.sh)

4.Si vous souhaitez utiliser une version JDK supérieure, mettez à jour les variables de chemin d'accès système en fonction de votre système d'exploitation. 

0
Praveen Kumar K S
0
Chris Lohfink